Je viens de découvrir un nouveau tutoriel sur la [POO en PHP|http://www.apprendre-php.com/tutoriels/categorie-6-1-la-programmation-orientee-objet-poo.html] sur le site [Apprendre PHP|http://www.apprendre-php.com/]. Le site est bien joli, et le tutoriel est bien expliqué. L’auteur s’est donné la peine de donner de nombreux exemples, et c’est ce qui rend ce tutoriel encore plus intéressant à mon sens. Dans un précédent [billet|/post/2009/apparition-de-la-visibilite-de-methodes-predefinies-en-php-5], j’avais expliqué l’utilisation des mots clés private, protected et private, mais avec ce tutoriel, je viens d’apprendre que cette notion s’appelle la __visibilité d’attributs ou de méthodes__. !!!Petit rappel sur la visibilité * __public__ (valeur par défaut) : l’attribut ou la méthode ainsi défini pourra être utilisé par n’importe qui. * __protected__ : l’attribut ou la méthode ainsi défini ne pourra être utilisé que dans la @@class@@ parente et ses dérivées (bref, celles qui en héritent quoi). * __private__ : l’attribut ou la méthode ainsi défini ne pourra être utilisé que dans la @@class@@ parente. Un petit exemple d’utilisation : /// class MaClass { public $var1; public function fonction() { echo ‘Coucou’; } } /// Et une petite erreur renvoyé si on utilise un attribut ou une méthode protégée ou privée à mauvaise escient : ///[apache] Fatal error: Cannot access private property NomClass::$attribut in /path/to/Apprendre-php/magic_methods.php on line X. /// !!!Modifier la valeur d’un attribut protégé ou privé : mutator On a parfois de modifier un attribut à l’extérieur d’un objet, et si ce dernier est protégé (@@protected@@) ou privé (@@private@@), eh bien on ne peut le modifier ainsi. La combine consiste à utilise le __mutator__ qui est une méthode dont le rôle est de modifier la valeur de tel ou tel attribut. En général on nomme ce mutator : @@setNomAttribut()@@. /// class MaClass { private $var1; public function setVar1($var1) { $this->var1 = $var1; } } /// !!!Lire la valeur d’un attribut protégé ou privé : accessor De la même manière, si on souhaite lire la valeur d’un attribut protégé (@@protected@@) ou privé (@@private@@) à l’extérieur de tout objet, il faut utiliser un __accessor__ : une méthode dont le rôle est de lire la valeur d’un attribut. En général, on nomme cet accessor : @@getNomAttribut()@@. /// class MaClass { private $var1; public function getVar1($var1) { return $this->var1; } } /// !!!Conclusion Voilà, ce que j’avais oublié est désormais corrigé ^^ C’est très bien expliqué sur le cours d’Apprendre PHP. Certains conseillent de créer des accessor pour tous les types d’attributs, on peut ainsi appliquer tous les traitements que l’on souhaite avant de récupérer un attribut ce qui est plutôt pratique et évite de modifier son code par la suite. Dans ce cas, il est judicieux d’oublier le petit « get », ainsi si notre attribut se nomme chameau, notre accessor se nommera chameau().
Catégories
- Apache (6)
- Avent (14)
- C / C++ (5)
- CMS (16)
- Geekeries (41)
- HTML et CSS (6)
- Informations (12)
- Java (26)
- Javascript (8)
- L'anecdote du week-end (4)
- PHP (30)
- PHP objet (20)
- Projets (4)
- Référencement (4)
- SQL (9)
- XML (3)
- XMPP (4)
Tags
30 minutes Android Anecdote Ant Apache attribut C class CMS constructeur CSS date design Dotclear Eclipse erreur Expression Google Java Javascript Joomla jQuery Ligne de commande Linux Maven MySQL méthode PgSQL PHP POO Projet public regex Référencement SEO Shell SQL ssh tutoriel Url Rewriting Wallpaper Windows Wordpress XHTML XML