La programmation orientée objet en PHP - Zenk - programmation... · La programmation orientée objet…

Embed Size (px)

Text of La programmation orientée objet en PHP - Zenk - programmation... · La programmation orientée...

  • La programmation oriente objet en PHP

    par Wes Shell (Auteur) Joris Crozier (Traducteur)

    Date de publication : 03/11/2009

    Dernire mise jour :

    La programmation oriente objet est une technique adapte en premier lieu par lesdveloppeurs de jeux vidos et ensuite reprise par les dveloppeurs traditionnels applicatifset web qui utilisent des langages tels que PHP, JSP et ASP.NET. Les programmeursprocduraux ont trouv le passage vers la programmation oriente objet tel un challengedans leur carrire car cela change totalement la manire de penser ses donnes, et lesoprations que le programme ralise.

    http://www.developpez.comhttp://wshell.wordpress.com/author/shellwes/http://www.developpez.net/forums/u116373/ridekick/

  • La programmation oriente objet en PHP par Wes Shell (Auteur) Joris Crozier (Traducteur)

    - 2 -Copyright 2009 - Joris CROZIER. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://jcrozier.developpez.com/tutoriels/web/php/programmation-orientee-objet/

    I - Introduction..............................................................................................................................................................3II - Les classes............................................................................................................................................................ 3III - Instanciation des objets........................................................................................................................................ 5IV - L'encapsulation..................................................................................................................................................... 6V - L'hritage............................................................................................................................................................... 7VI - Conclusion............................................................................................................................................................ 9VI - Le code complet................................................................................................................................................... 9VII - Liens...................................................................................................................................................................10

    http://www.developpez.comhttp://wshell.wordpress.com/author/shellwes/http://www.developpez.net/forums/u116373/ridekick/http://jcrozier.developpez.com/tutoriels/web/php/programmation-orientee-objet/

  • La programmation oriente objet en PHP par Wes Shell (Auteur) Joris Crozier (Traducteur)

    - 3 -Copyright 2009 - Joris CROZIER. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://jcrozier.developpez.com/tutoriels/web/php/programmation-orientee-objet/

    I - Introduction

    J'tais l'un de ces programmeurs "old school" qui ont lutt pour raliser que ce que je venais de dcouvrir tait en faitun concept simple. J'espre que mon exprience va aider expliquer comment passer du style procdural au styleobjet. Mais pour commencer en POO, vous allez devoir connaitre ces concepts :

    Les classes L'instanciation d'objets L'encapsulation L'hritage

    Deux autres concepts en POO que nous n'aborderons pas dans cet article mais que nous aurons l'occasion de voirsont les suivants :

    Les classes abstraites et statiques Le polymorphisme

    II - Les classes

    Voir aussi Crer une classe en PHP

    Les classes sont les squelettes des objets. Quand vous faites de la POO vous devez commencer penser votreprogramme ou votre application comme si c'tait un objet du monde rel faisant des actions relles. Les classes sontl'endroit o vous dfinissez les caractristiques et les capacits de ces choses.

    Bien, vous dites-vous, mais que cela veut-il dire ? Pour mieux comprendre, vous devez prendre du recul sur votreprojet et jeter un il sur ce qui est autour. La meilleure faon de commencer est d'crire une explication de votreprogramme, ce qu'il fait, comment il marche, et comment on interagit avec. Pour un gros programme, cela peutprendre beaucoup de temps, mais une fois cela fait, vous vous en fliciterez.

    Nous allons utiliser un exemple trs simple :

    Ce programme est un zoo. Quand le programme dmarre, 3 animaux sont montrs l'utilisateur. Un chat blanc, un chien marron et un koala gris. L'utilisateur sera en mesure deslectionner un animal et de cliquer sur "parler " qui aura pour effet de faire parler l'animal. Unefois slectionn, le chat dira "miaou ", le chient "wouf ", et le koala dira "Bonjour monsieur ".La premire chose que nous devons faire est d'identifier tout ce dont nous avons besoin pour notre programme. Lemeilleur moyen de le faire simplement est de lister tous les noms du paragraphe prcdent :

    Programme, zoo, animaux, utilisateur, chat, chien, koala.Ensuite nous devons liminer les lments vidents. Programme et utilisateur ne sont pas inclus car l'utilisateur esten dehors du programme, et programme est ce qui sera compos de toutes nos classes.

    Zoo, animaux, chat, chien, koala.Vous vous demandez srement pourquoi nous avons "animaux" dans notre liste sachant que chat, chien et koalareprsentent dj des animaux. La rponse est le concept que nous appelons hritage, que nous verrons plus loin.Pour le moment nous allons ignorer " animaux ", car notre chien, notre chat et notre koala sont nos animaux.

    La chose suivante faire est de reprer les caractristiques de nos objets. Ceci peut tre fait en reprenant leparagraphe prcdent et en mettant en avant tous les adjectifs qui dcrivent nos objets.

    http://www.developpez.comhttp://wshell.wordpress.com/author/shellwes/http://www.developpez.net/forums/u116373/ridekick/http://jcrozier.developpez.com/tutoriels/web/php/programmation-orientee-objet/http://jcrozier.developpez.com/tutoriels/web/php/design-classe/

  • La programmation oriente objet en PHP par Wes Shell (Auteur) Joris Crozier (Traducteur)

    - 4 -Copyright 2009 - Joris CROZIER. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 Ede dommages et intrts.

    http://jcrozier.developpez.com/tutoriels/web/php/programmation-orientee-objet/

    Ce programme est un zoo. Quand le programme dmarre, 3 animaux sont montrs l'utilisateur. Un chat blanc, un chien marron et un koala gris. L'utilisateur sera en mesure deslectionner un animal et de cliquer sur "parler" qui aura pour effet de faire parler l'animal. Unefois slectionn, le chat dira "miaou ", le chien "wouf", et le koala dira "Bonjour monsieur ". Le chat - {blanc} Le chien - {marron} Le koala - {gris}

    Une fois que les caractristiques sont repres, nous devons reprer les actions que les objets peuvent faire. On lefait en mettant en avant les verbes attachs nos objets :

    Ce programme est un zoo. Quand le programme dmarre, 3 animaux sont montrs l'utilisateur. Un chat blanc, un chien marron et un koala gris. L'utilisateur sera en mesure deslectionner un animal et de cliquer sur "parler" qui aura pour effet de faire parler l'animal. Unefois slectionn, le chat dira "miaou", le chien "wouf", et le koala dira "Bonjour monsieur". Zoo - {}(montr) Le chat - {blanc}(dira) Le chien - {marron}( dira) Le koala - {gris}( dira)

    Maintenant regardez nos actions. Pour que les choses aient un peu plus de sens nous devons modifier lgrementnotre descriptif. En commenant par le zoo ; le zoo doit "montrer" trois animaux. Donc nous changeons "montr"par "montrer". Ensuite les animaux "diront" quelque chose alors que nous voulons qu'ils "parlent". Donc nous allonschanger "dira" en "parle".

    Zoo - {}(montrer) Le chat - {blanc}(parle) Le chien - {marron}( parle) Le koala - {gris}( parle)

    Ce procd peut requrir pas mal de rflexion et pas mal de jugement de votre part pour avoir les bonnes formulations,mais la chose importante est que toutes vos actions sont en fait reprsentes dans vos classes. Pour voir le parallleentre les mots collects dans le paragraphe et le code, vous pouvez jeter un il l'exemple suivant. Si vous tesdj familiaris avec la syntaxe vous pouvez tenter de crer le code suivant par vous-mme. Si vous tes dbutant,je vous encourage lire l'article "Crer une classe en PHP".

    class Zoo{ var $_animaux = Array();

    function Montrer() { echo "Les animaux dans le zoo:";

    foreach ($this->_animaux as $animal) { echo "" . get_class($animal) . "
    " ; } }

    function __construct() { $this->_animaux["Chat"] = new Chat("Blanc"); $this->_animaux ["Chien"] = new Chien("Marron"); $this->_animaux ["Koala"] = new Koala("Gris"); }}

    class Chat

    http://www.developpez.comhttp://wshell.wordpress.com/author/shellwes/http://www.developpez.net/forums/u116373/ridekick/http://jcrozier.developpez.com/tutoriels/web/php/programmation-orientee-objet/http://jcrozier.developpez.com/tutoriels/web/php/design-classe/

  • La programmation oriente objet en PHP par Wes Shell (Auteur) Joris Crozier (Traducteur)

    - 5 -Copyright 2009 - Joris CROZIER. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous e