Annonce

Réduire
Aucune annonce.

Le PHP Orienté Objet pour débutants – Part 1

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel Le PHP Orienté Objet pour débutants – Part 1

    La Programmation Orientée Objet (ou POO) est un concept qui fait fuir de nombreux programmeurs PHP en herbe. Plein de syntaxes compliquées et autres obstacles. Mais que nenni ! La POO est tout un style de codage dans lequel interviennent des objets et des classes, tout un art que je vais vous expliquer dans cette première partie pour que vous puissiez créer vos applications avec un tout autre style.

    Mais qu’est-ce donc ?


    La programmation orientée objet est un style de codage qui permet aux développeurs de grouper des tâches similaires dans des classes.

    Cela permet entre-autres de suivre le principe "Ne vous répetez pas" (Don't Repeat Yourself, ou DRY en Anglais).

    Un des principaux avantages de la programmation DRY est que, si l'on doit modifier une une information dans votre code, un seul changement est nécéssaire.

    Cependant, la POO introduit une nouvelle syntaxe. Et vu à l'œuil rapidement, cela parrait beaucoup plus compliqué que la méthode simple. Mais après petite inspection, c'est bien le contraitre !

    Donc, pour récapituler, ce concept va nous servir à maintenir, tester, déboguer et à évoluer le programme plus facilement !

    Une histoire d'Objets et de classes


    Avant de commencer à coder, il est nécéssaire de pouvoir faire la différence entre les objets et les classes.


    Regardez cette image; à gauche nous avons une classe, et à droite, un objet !

    C'est un concept un peut difficile à retenir la première fois, certes, alors il faudra vous exercer par la suite

    Une classe, c'est comme le plan d'une maison. Il définit la forme de la maison sur le papier, les relations entre les différentes parties de la maison clairement définies, même si la maison n'existe pas.

    Et un objet, est donc la maison en elle-même. Les données stockées dans l'objet, sont le bois, le béton, et les fils. Sans être assemblés, c'est juste un tas de choses empilées. Mais en suivant le plant, cela devient une maison parfaitement fonctionnelle.

    Pour faire une relation, les classes forment la structure des données et d'actions, et sont utilisées pour construire les objets. Et plus d'un objet peut être construit à partir de la même classe en même temps, indépendantes les unes des autres.

    Prenons l'exemple d'un lotissement : plusieurs maisons sont construites à partir d'un même plan, mais toutes ont des décorations et familles différentes !

    La structure d'un classe


    Créer une classe est très simple, utilisez le mot clé class, suivi du nom que vous voulez donner à la classe.

    Code:
    class Maison {
     
    // c'est ici que vont les attributs et les méthodes
     
    }
    Une fois que votre classe a été créee, nous allons instancier un objet comme suit :

    Code PHP:
    $maisonDeLaMortQuiTue = new maison
    Et j'ai maintenant une nouvelle maison !

    Mais comment savoir ce que contient la maison de Lyes ? Nous allons utiliser var_dump() pour afficher le contenu d'une classe.

    Code PHP:
    var_dump($obj); 
    Maintenant, nous allons essayer le code au complet.

    Code:
    // c'est ici que vont les attributs et les méthodes
    }
     
    $maisonDeLaMortQuiTue = new maison;
     
    var_dump($maisonDeLaMortQuiTue);
    object(MyClass)#1 (0) { }
    Cher lecteur, vous venez de créer la première classe de votre vie !

    Définir les attributs de la classe


    Ma jolie maison toute neuve est un peu vide à mon goût, remplissons la un peu !

    Les attributs fonctionnent exactement comme les variables, mise à part la syntaxe qui est un peu différente.
    Revenons à notre maison :

    Code PHP:
    class Maison
    {
       public 
    $proprio "Youssef";
       public 
    $ville "New York";
    }
     
    $maisonDeLaMortQuiTue = new maison;
     
    var_dump($maisonDeLaMortQuiTue); 
    Le mot clé "public" détermine la visibilité de la variable (ou attribut), je vous explique ça un peu plus loin !

    Maintenant, pour voir le nom de la ville où est située la maison de Youssef, ajoutons ce code:

    Code PHP:
    echo $maisonDeLaMortQuiTue -> proprio.' a une jolie maison !'
    Puisque plusieurs objets peuvent êtres instanciés, nous devons d'abord préciser le nom de l'objet. Sinon, PHP ne saura pas quoi afficher !
    Le script va donc afficher: "Youssef a une jolie maison". c'est presque magique

    Définir les méthodes de la classe


    C'est lent et moche à écrire ton truc !

    Ne partez pas ! Il y a en effet, une "astuce" qui nous permet d'accéder à l'attribut, et de le modifier.

    Nous allons donc créer une méthode (fonction) pour récupérer la valeur, et une autre pour pouvoir la modifier !

    Code PHP:
    class Maison
    {
       public 
    $proprio "Youssef";
     
       public function 
    getProprio() {
          return 
    $this -> proprio;
       }
       public function 
    setProprio($nouveauProprio) {
          
    $this -> proprio $nouveauProprio;
       }
    }
     
    $maisonDeLaMortQuiTue = new Maison;
     
    echo 
    "Le propriétaire actuel de la maison de la mort qui tue est: " $maisonDeLaMortQuiTue.getProprio() . "\n";
    echo 
    "Helas, Youssef a vendu la maison ! \n;";
     
    $maisonDeLaMortQuiTue.setProprio('Mohammed');
     
    echo 
    "La maison appartient maintenant à " $maisonDeLaMortQuiTue.getProprio(); 
    Le propriétaire actuel de la maison de la mort qui tue est: Lyes
    Helas, Youssef a vendu la maison !
    La maison appartient maintenant à Mohammed
    Note — En POO, Les objets peuvent se référencer eux-même en utilisant le mot clé $this. Quand vous travaillez dans une méthode, utilisez $this de la même manière que si vous devez utiliser le nom de l'objet en dehors de la classe.

    Bien, maintenant que nous avons crée une maison, pourquoi pas en créer plusieurs ?

    La puissance de la POO devient évidente lorsque vous utilisez plusieurs instances de la même classe

    Code PHP:
    class Maison
    {
       public 
    $proprio "Propriétaire inconnu";
     
       public function 
    getProprio() {
          return 
    $this -> proprio;
       }
       public function 
    setProprio($nouveauProprio) {
          
    $this -> proprio $nouveauProprio;
       }
    }
     
    // Création de la maison de Lyes
    $maisonYoussef = new Maison;
    $maisonYoussef -> setProprio('Youssef');
     
    // Création de la maison de Mehdi
    $maisonMehdi = new Maison;
    $maisonMehdi -> setProprio('Mehdi');
     
    // Affichage des propriétaires des 2 maisons
    $maisonYoussef -> getProprio();
    $maisonMehdi -> getProprio(); 
    Chers amis, la première partie du tutoriel est finie ! Voici ce que vous devez retenir pour l'instant :

    - Par standard, le nom d'une classe commence toujours par une majuscule.

    - var_dump() Affiche la contenu d'un objet

    - Les attributs sont les variables des classes

    - Les méthodes sont les fonctions des classes

    - $this référencie l'objet lui-même

    Dans les chapitres suivants, je vais vous faire décourire toute la magie de la POO ; Les constructeurs et les déstructeurs, la gestion des erreurs, l'héritage, les constantes, et j'en passe !

    Restez sur The Hackademy, je compte sur vous, et j'espère que ce tutoriel vous a plu.

    Pour toutes questions, commentaires, je suis à votre disposition

    A bientôt pour la Part. 2 !

    Source: geeknoise
    Dernière modification par LawYor, 25 août 2011, 21h05.
    sigpic
Chargement...
X