Ce billet fait parti de la série sur la poo en php5.
Dans un premier temps nous allons créer une classe qui ne sert pas à grand chose hormis de manipuler un peu tous les concepts de base de la programmation orienté objet (poo) en php.
Vous allez donc ouvrir votre IDE préféré (pour la poo j’utilise netbeans) et créer votre première classe. Personnellement je les appelle MaClasse.class.php (les noms de classe commencent par une majuscule) et les met toutes dans un dossier classes à la racine de mon projet.
Ensuite nous allons mettre deux lignes de codes pour indiquer à php que c’est une classe :
Voilà! Vous avez votre première classe! Bon ok elle est vide…Donc nous allons lui ajouter un attribut, un constructeur et une méthode qui va nous permettre de changer la valeur de son attribut.
- monAttribut=$initMonAttribut;
- }
- function setMonAttribut($valeur){
- $this->monAttribut=$valeur;
- }
- }
- ?>
$this?? C’est quoi ce truc! Pas de panique! La variable $this permet d’accéder aux attributs et méthodes à l’intérieur de l’objet. Maintenant nous allons tester notre classe inutile. Créez un fichier index.php et mettez y ce code :
Comme vous pouvez le voir, pour instancier un objet on utilise le mot clé new suivi du nom de la classe. Ensuite pour accéder aux attributs ou aux méthodes on utilise la flèche (->).
Jusque là vous devriez avoir saisi les concepts évoqués, à savoir : comment créer une classe, comment déclarer un attribut et une méthode (dont la méthode magique __construct pour le constructeur) et comment accéder à ces dernier à l’intérieur de l’objet avec la variable $this.
Dans le prochain article nous créerons notre première classe utile. Vous commencerez alors à voir les bénéfices de la programmation orienté objet en php. C’est un peu déroutant au début surtout lorsque l’on a l’habitude de faire du procédural…
User Responses
10 Responses and Counting...
Leave a Reply
[tuto jquery] drag ‘n drop avec sauvegarde automatique en base de données (2/2)
[tuto jquery] drag ‘n drop avec sauvegarde automatique en base de données (1/2)
[2 birthday] 2 ans aujourd'hui = 2 smashing book à gagner
[tuto web] cadre avec bordures extensibles valide xhtml/css
[tuto mashup] Google maps sur votre site : c'est possible! (version statique)
- Lever des fonds 5 mars 2010 Olivier Marone
- Why Google Pushed Buzz Out The Door Before It Was Ready 1 mars 2010 Erick Schonfeld
- Les levées de fonds dans les start-up : Des divergences d’intérêts entre entrepreneurs et investisseurs 1 mars 2010 Olivier Marone
- 11082 26 février 2010 (author unknown)
- 7 conseils pour mélanger plusieurs fontes dans votre design web 19 février 2010 Bruno Bichet




![[3615 mylife] Limoges, c’est fini. La suite?](http://antoine.guiral.info/wp-content/uploads/2010/02/stvincent.jpg)
![[facebook] Du nouveau sur la roadmap](http://antoine.guiral.info/wp-content/uploads/2010/02/facebook_logo.png)
![[facebook php] hiphop for php : une petite révolution dans le monde du développement web et de php](http://antoine.guiral.info/wp-content/uploads/2010/02/hiphop.jpg)
![[apple iPad] énorme succés de l’iPad à la dernière keynote d’apple](http://antoine.guiral.info/wp-content/uploads/2010/01/ipad.jpg)
![[google] google, le 51ème état?](http://antoine.guiral.info/wp-content/uploads/2010/01/51emeetat.jpg)
janvier 28, 2009
Antoine Guiral : apprenti du web 2.0 : [poo php] première classe…
Article faisant parti d’une série sur la poo en php….
janvier 28, 2009
Merci pour ce tuto fort instructif!!! ça me permet de mieux comprendre certain truc à la fois en objet et en php objet :d
janvier 28, 2009
Moi j’attends la suite, quand ça se corsera un peu plus x)
janvier 28, 2009
héhé ca arrive ca arrive
mais bon faut y aller doucement au début…
janvier 28, 2009
Bonsoir,
Je voulais savoir à quoi correspondait le PHP_EOL ?
Je n’ai pas trouvé de réponses franches et c’est la première fois que je le vois utilisé dans un code…
janvier 28, 2009
Désolé de répondre si tard,
PHP_EOL correspond à php end of line.
janvier 28, 2009
Bonjour et merci pour ce cours excellent. Il faut que je me lance dans le développement orienté objet sous PHP car je développe principalement avec fonctions déclarées dans un document inclus aux pages.
L’histoire d’enregistrer un objet dans une session me parait très pertinante.
Par contre je ne saisis pas bien les :: dans le code (j’ai pas fais d’études info dans mon jeune temps et les class ne sont pas encore bien digérées)
ex:
UtilisateurFactory::CreeUtilisateur…
Merci
janvier 28, 2009
Bonjour jparia,
.
tout d’abord merci pour les compliments
Ensuite les :: sont utilisés pour appeler une méthode static. C’est une méthode qui sort un peu des appels classique vu que l’objet qui la contient n’a pas besoin d’etre instancié (sinon on parle du pattern singleton). Donc pour une méthode classique on instancie notre objet puis on fait $notreVariable->notreMethode(); . Pour une méthode static c’est : NotreClasse::notreMethode(); .
au plaisir de te revoir par ici
Voilà j’espère avoir été clair
janvier 28, 2009
super réactif et super clair.
encore merci et bon continuation.
janvier 28, 2009
avec plaisir
Si vous avez des questions, je suis souvent disponible dans la fenetre de chat, en bas a droite.
Si bous pensez que votre question peut interesser d’autres utilisateurs, préférez les commentaires:)
A bientôt!