Résumé de PHP Orienté Objet

 

Il est possible de développer en objet (orienté) en PHP. Voici résumé en quelques lignes les possibilités:

 

Il vous faudra avoir des connaissances de base concernant le développement en programmation orienté objet.

Il faut aussi bien connaître le PHP.

Un cours sur le site du zéro.

 

Le B.a. ba

Comme en PHP programmation structurée, il sera possible de mettre des commentaires dans le code: /* remarques */ ou // pour des remarques qui s'arrêtent à la fin de la ligne.

 

$this permet d'accéder aux méthodes, attributs de l'instance d'une classe.

Exemple $this->attribut1 = valeur;

$this->maMethode();

Image non trouvée !Si vous ne précisez pas $this devant une variable, alors vous n'utiliserez pas l'attribut de la classe portant le nom de la variable, mais une variable de la méthode dans laquelle vous avez codé votre ligne.

 

parent permet d'accéder aux méthodes ou attributs de l'instance de la classe mère.

Par exemple parent::méthode() ou parent::attribut

 

$self permet d'accéder aux méthodes, attributs de la classe (cf. static). l'écriture est self::xxx ou xxx est la variable ou la méthode à accéder.

 

Vues externes et internes d’une classe, d'une méthode ou d'un attribut

Il s'agit d'indiquer la portée d'une classe, méthode ou d'un attribut:

public: accessible de l’extérieur.

protected: accessible dans les classes dérivées.

private: accessible que par la classe seule.

static: indique que les attributs ou méthodes (qui pourront être public, protected, private) se situent au niveau de la classe et non au niveau de l'instance.

 

Déclaration d'une classe

class NomClasse
{

[...]

}

Une classe pourra étendre une autre classe:

class NomClasse extends ClasseMere
{

[...]

}

 

Définition d'une méthode

Une méthode est en fait une fonction php. Nous utiliseront donc la commande function:

[porté] function maMethode([param1, [param2, [...]]])
{

[ ...code de la méthode... ]

}

 

Le constructeur d'une classe

  • Avant PHP5, le constructeur d'une classe est une méthode normale à ceci près que son nom est le même que le nom de la classe.

notesCette solution n'est plus conseillée après php5, et carrément dépréciée avec php7, avant sa suppression.

Cette méthode sera exécutée automatiquement lors de l'instanciation de la classe.

Par exemple:

class MaClasse
{


public function MaClasse ()
{
[...code du constructeur...]
}

}

  • A partir de PHP5, le constructeur devra se nommer __construct

Cette méthode sera exécutée automatiquement lors de l'instanciation de la classe.

Par exemple:

class MaClasse
{


public function __construct ()
{
[...code du constructeur...]
}

}

Destructeur

Il existe le pendant de __construct

Le destructeur:

function __destruct() {
        print "Destruction...\n";
}

Instanciation d'une classe

Pour instancier une classe, il suffit d'utiliser la "classique" (car utilisée par tous les poo) commande new:

$instance=new MaClasse();

Dans les parenthèses seront éventuellement passés les paramètres attendus par le constructeur de la classe.