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();
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.
Cette 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.