Parlons peu mais parlons bien… Nous sommes Légion Objets, du moins, nous nous initions et commençons à le(s) prendre en main!

Telle l’armée de codeurs que nous sommes en train de devenir,  nous hurlons en choeur au fil de nos lignes de codes : THIS IS OBJECT !

this_is_sparta_300_king_leonidas_warrior_sword_shout_rage_4043_3840x1200

Le principe d’objets n’est pas propre à un langage, nous avons pu en voir en Js comme en PHP. Il a pour but de simplifier la vie du développeur, en important des morceaux de codes déjà tout fait….. Déjà tout fait oui, mais faut bien les faire un jour. Donc c’est vrai qu’au début, c’est un peu embêtant, c’est long, ça parait aussi inutile, sur des petits projets comme les notres, mais au final c’est pratique !

L’objet est donc un morceau de code, particulier, qui peut être appelé à tout va et personnalisable à souhait sans avoir à tout ré-écrire. Mais bon, un exemple vaut mieux qu’un long discours, alors c’est parti pour de l’objet (en PHP s’il vous plait) :

Déjà, dans le code on ne parle pas d’objet, mais de “class”. Faisons une classe Perso, qui aura pour but de créer des personnages, avec des statistiques.

Pour démarrer, nous allons faire un nouveau fichier Php, histoire de bien séquencer notre code, et associer une classe à un fichier appeler nom-de-l’objet.class.php (le .class permet de visualiser immédiatement que c’est un objet)

A l’intérieur, entrons la ligne ” class Perso {} ” qui créé un objet nommé Perso.

Objet PHP - Création de l'objet

Le principe de l’objet résulte dans le fait qu’on peut y intégrer des variables, des propriétés ainsi que des fonctions, c’est une grosse boite et on y met ce qu’on veut avoir dedans, qu’on peut transporter de code en code.
Dans notre exemple, nous allons donner des caractéristiques comme la vie, la force, l’intelligence, l’adresse et l’expérience de notre personnage.

Ainsi, nous allons programmé cela dans une fonction dite initiale, qui se chargera dès lors de la création de l’objet, elle se nomme __construct () et ainsi nous obtenons :

Objet PHP - fonction __construct

Ensuite, nous voulons faire parler notre personnage, il nous faut donc l’aide d’une fonction, pour dire soit un texte fixe, soit appeler une variable de texte prédéfinie : Objet PHP - Action

La présentation de définir la vie, l’intelligence avec $this->”quelque chose”, au lieu de faire une simple variable $vie ou $intell montre le chemin, le principe que c’est une propriété de cet objet précis, c’est lié à l’objet en question.

C’est bien beau de faire tout ça, définir des statistiques, une action, mais comment l’intégrer à notre projet me direz-vous ?!
Du calme les z’amis, j’y arrive, je vous répondrai !

Maintenant que vous avez un objet (rudimentaire, certes, mais fonctionnel), nous allons voir comment l’intégrer et l’utiliser.

Qui dit intégrer dit …. include, simple non? mais pour éviter les soucis car si jamais vous intégrer deux fois votre objet, boum badaboum ça crash. Du coup pour pallier à ça, on utilise non pas include, mais include_once, compliqué? pas tant que ça vous voyez ! Et donc ça donne simplement : Objet PHP - IncludeMaintenant que notre fichier est lu, lié, intégré… Il faut l’exploiter, et pour ça, il va falloir créer un personnage…. Je m’explique. Nous avons à présent créer une boite à outils qui permet de définir un “Personnage” par défaut, mais qui ne définit rien en soit, il faut en fait créer une variable, par exemple $Paul et lui dire qu’il sera un nouvel objet Perso, ainsi il sera défini de la manière qu’on a définit notre objet Perso. Ainsi nous écrirons la ligne :

Objet PHP - New Objet

De la sorte, $Paul adopte les propriétés définies dans notre objet (vie à 35, intelligence à 11, etc. ). Si nous voulons changer cela, c’est très facile, il suffit de la redéfinir sur $Paul, et comme ça, l’attribut modifié n’affectera que lui. Cependant, si nous changions quelque chose dans l’objet personnage.class.php, là par contre ça affectera tout le monde.

Par exemple, rajoutons par “défaut” (j’entends par là dans le fichier personnage.class.php) l’attribut nom ayant pour valeur ‘John Doe’.

Si vous avez compris, il suffit donc d’aller dans la fonction __construct() et rajouter une ligne comme cela : Objet PHP - Modifier les paramètresAinsi, lorsque notre $Paul est créé, il aura pour attribut supplémentaire le nom John Doe, ce qui me plait pas puisque je veux l’appeler Paul Dupont (oui je manque d’imagination sur les noms). Mais je veux que cette modification ne s’applique qu’à lui. Du coup, il faut que je la définisse dans ma variable $Paul, et ça donne : Objet PHP ( Modifier un paramètre

Voilà, notre $Paul s’appelle bien Paul Dupont alors que tous les autres objets auront toujours de base John Doe.

De la même manière, on appellera la fonction désirée, l’action souhaitée avec la même syntaxe. Si on veut que notre $Paul parle, ou du moins effectue la fonction parler() il suffira d’écrire : Objet PHP - Executer une fonctionDu coup, vu que nous avons défini un écho dans notre fonction, à cet endroit sera renvoyé notre fameux message.

Vous avez dès à présents les prémices nécessaires pour comprendre la logique de l’objet, car rien ne m’empeche de faire un $Pierre avec 50 de vie et 3 en intelligence qui dit (fonction parler() ) Patate, ou encore un Brutus avec 90 de force et 2 en intelligence et qui répétera sans cesse ”grrrr”

A vous de définir votre propre boite à outils comme vous le désirez, pour ce que vous désirez.

Pour en découvrir davantage je vous invite à consulter Le tutoriel OpenclassRoom