[RESOLU] [POO] Appeler des fonctions d'un objet sans avoir à instancier l'objet

Eléphanteau du PHP | 23 Messages

03 mai 2016, 19:56

Bonjour à vous,

je me pose une question sur le développement en mode objet.

J'ai différentes fonctions que j'aimerais regrouper à l’intérieur d'une classe que l'on pourrait par exemple appeler "fonctions". Jusque là, rien de bien incroyable je pense.

Cette classe n'ayant que pour but de rendre accessible certaines fonctions, mon constructeur est vide. Pour accéder à ces fonctions, je suis obligé de faire un new de cette classe.

Ma question est la suivante : ne me serait-il pas possible de me passer de l’instanciation de cet objet, et d'appeler directement la dite fonction ?

Si je ne suis pas assez clair, dite le moi, je passerais par des exemples ;)

Merci par avance

ViPHP
ViPHP | 928 Messages

03 mai 2016, 20:04

A la place de :
$obj = new ClassName();
$obj->method();
tu peux faire :
(new ClassName())->method();
Note aussi que tu peux directement étendre PDO plutôt que de créer une classe à part.

Mammouth du PHP | 2703 Messages

03 mai 2016, 21:13


Eléphanteau du PHP | 23 Messages

04 mai 2016, 09:37

@or 1 : Super, merci !

@Genova : qu'entends-tu par "étendre PDO" ? En te remerciant par avance.

ViPHP
ViPHP | 928 Messages

04 mai 2016, 11:36

Comme ça :
class CustomPDO extends PDO
{
    public function quelqueChose()
    {
    
    }
}
Et donc ça te permet d'ajouter les méthodes que tu veux dans PDO.

Eléphanteau du PHP | 23 Messages

04 mai 2016, 17:49

En fait, je voulais surtout savoir ce que la classe "PDO" avait de particulier. Mais j'en arrive à la conclusion que ce doit être un acronyme du monde de la POO PHP. Donc, si mes recherches sont bonnes, PDO veut dire PHP Datas Objects... Exact ? :)

ViPHP
ViPHP | 928 Messages

05 mai 2016, 00:08

Pour résumer simplement, PDO permet de se connecter à divers type de base de donnée (MySQL, Oracle, etc...), tout en permettant d'utiliser la puissance de la programmation orientée objets, ce qui n'est pas le cas des anciennes façon de faire (avec les fonctions mysql_* par exemple).

Eléphanteau du PHP | 23 Messages

05 mai 2016, 11:29

Ah ! Intéressant, je garde cela en mémoire dés que je passerais à la phase "contenu dans la bdd".

Merci à toi ;)