Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

L'essentiel de PHP 7

Composer un chemin proprement

Testez gratuitement nos 1341 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Composer simplement un chemin n'est pas toujours évident. Passez en revue quelques méthodes pour gagner en lisibilité dans le code.
07:18

Transcription

Alors, actuellement, pour faire nos Require, on est en train, ici, de composer soi-même le chemin, bon, c'est pas forcément la meilleure des idées, et puis, pour vous montrer un petit peu qu'on peut se créer des classes utilitaires, eh bien, là, on va se créer une classe. On va se créer une classe qui va faire quoi ? Qui va composer facilement, au travers d'une petite classe objet, le chemin et qui va nous le retourner. On va utiliser, pour ça, une nouvelle classe. Donc, on, va se créer, ici, un fichier qui va s'appeler Resolver.php, voilà. Le Resolver, ça sera très bien comme nommage, Alors, voyez que le nommage, c'est pas toujours évident, parce qu'il faut essayer de trouver des noms cohérents, là c'est vrai que c'est bien c'est un vrai resolver, alors, ça commence toujours pareil. C'est une classe. Soit vous mettez une majuscule, soit vous en mettez pas, généralement on en met une, mais là, on va simplement, comme ça, faire un petit resolver, donc on a pas besoin de faire grand chose de particulier, on va faire une classe resolver. Cette classe resolver, qu'est-ce qu'elle va prendre ? Elle va avoir trois paramètres, elle va avoir trois propriétés. On va regarder ici, on a besoin du dossier de base, on a besoin d'une racine, donc le Root, le root folder, on a besoin, ici, d'un dossier dans lequel se trouve la classe, on a besoin, ici, d'un nom de classe. On va essayer d'éviter d'avoir à tout taper, on va se faire un petit Sprint F qui va construire tout ça proprement et pourquoi pas, qui fera même carrément le require. On va commencer simple, déjà, on va préparer, ici, le root. Donc, rootDir, on sait que c'est une propriété, on va la mettre en public. Ensuite, on va se mettre une propriété publique qui va être le folder. Et puis, enfin, on va se mettre, ici, une propriété publique qui va être le nom de la classe. On peut mettre Name, par exemple, et on va se faire un constructor. Attention, parce que le constructor, vous vous souvenez, c'est une publique fonction, sous PHP, comme ça, Construct, ok. Ce constructeur, il va prendre quoi, ici, pour nous ? Eh bien il va prendre tout simplement les trois propriétés, les trois paramètres qu'on a, c'est-à-dire le rootDir, et puis on va même les rendre obligatoire, RootDir, ici, ensuite, il va prendre le folder, et puis, enfin, il va prendre le name. Et, on sait qu'on va vouloir, ici, les mettre à l'intérieur des propriétés qui sont les propriétés accessibles par 10, sur l'objet, donc, rootDir va être égal au rootDir, ensuite, on sait que folder, c'est la même chose, ça va être égal à folder qui est passé en paramètre au constructeur, et enfin, le thisName, qui va être la même chose, qui va être égal au Name passé par le constructeur. Et puis, enfin, il faudrait une petite méthode, quand même. Alors, on pourrait appeler la méthode getPass, pour récupérer vraiment le pass, puis, plus tard, on renommera cette méthode, alors faites attention, c'est une fonction, et, de préférence publique pour la rendre accessible. Alors, vous savez que sur cet objet, du coup, on vient d'insérer des informations donc, on a des paramètres de l'objet qui actuellement sont maintenant remplis. Enfin, qui vont l'être, en tout cas, quand on va utiliser, quand on va instancier ce nouvel objet. Donc, le getPass qu'on a là, on va pouvoir lui demander de nous retourner un pass propre, donc un chemin propre, et pour ça, on va simplement utiliser un return, sprint F, et on sait qu'on va devoir, ici, mettre en premier, donc ça va être le rootDir / ensuite le folder, donc là, ça va encore être un pourcentage S, donc on va mettre un petit pourcentage S avec le folder, et, enfin, à la fin, on va mettre / le nom de la classe que l'on veut .php. Comme ça, on aura même plus besoin de mettre les .php, ça va nous le rendre tout seul. Ça va être quoi, les paramètres, eh bien le premier, c'est le rootDir, donc 10 rootDir. Alors, attention à ne pas oublier, ici, hop, voilà. C'est une variable, qui quoiqu'il arrive est sur 10. Ensuite, on a dit que c’était le folder, et enfin, on a dit, que c'était le name. Et là, vous venez de composer facilement, ici, un chemin, tout simplement, vers votre classe. Alors, bien sûr, si on commence à avoir plusieurs dossiers et sous-dossiers, ça va pas marcher. Et là, en l'occurrence, ça va être ok, on va pouvoir l'utiliser. Alors, maintenant, comment je l'utilise, du coup, ma classe, eh bien je suis obligé de faire un require. Ça j'ai pas le choix, hein. De base, en haut, il faut que je fasse un require de ma classe. Ma classe c'est resolver et ma classe se trouve dans le dossier classe. Donc c'est class, ici, et resolver.php, faites attention quand vous complétez les noms, des fois, avec php storm, il vous ajoute deux fois l'extension, Enfin, si vous l'aviez déjà, pensez bien à cleaner. Et maintenant, ici, moi j'ai envie de pouvoir faire un require avec mon resolver. Donc, je vais déjà commencer par instancier un New resolver. Resolver, comme ça. Je sais que quand je l'instancie, j'ai besoin de lui donner plusieurs informations. Le premier, c'est le root directory. C'est ça, mon root directory. Le deuxième, c'est le folder de ma classe, c'est inc, et le troisième, c'est le nom de mon fichier. C'est header, en l'occurrence, ici. En faisant ça, je vais bien, ici, avoir un New resolver qui va être créé. Par contre, je ne peux pas, directement sur un objet New, comme ça, faire une flèche pour récupérer une propriété pour aller appeler, en fait, le getPass. Petite astuce, vous allez être obligé, d'abord, de le mettre, d'imbriquer, en fait, votre nouvel objet dans un jeu de parenthèses ouvrantes et fermantes pour pouvoir, juste derrière, faire le getPass. Vous n'avez pas le choix, c'est obligatoire, il faut faire ça comme ça, ça vous permet, cette partie-là, qu'est, en fait, un petit truc et astuce, de créer l'objet et de le rendre disponible directement pour pouvoir utiliser les flèches pour aller chercher des propriétés. En faisant ça normalement, on devrait avoir toujours notre header qui fonctionne. Voilà, il n'y a pas de problèmes, ça continue à fonctionner, donc ça marche parfaitement. Mais, getPass, est-ce que ce serait pas mieux de dire directement requireFile, et puis comme ça, ça nous fait le require automatiquement, eh bien on peut le faire sans aucun problème. On va renommer, ici, la méthode requireFile, et on va, non pas faire un return juste du pass, comme ça, mais on va faire un return de require directement, du pass. Et ça va marcher de la même manière, il n'y a aucun problème. Donc, ici, on va enlever ça, et on sait directement, qu'en faisant ça, eh bien du coup, on va être tranquille et hop, on va pouvoir avoir quelque chose qui fonctionne. Donc ça, c'est pas mal de le faire comme ça, après, on pourrait l'améliorer plus pour éviter, à chaque fois, de lui donner le dir, et on aurait juste à lui donner le dossier, le chemin et puis le header, ça, ce serait possible aussi, donc il faudrait prévoir ça, un petit peu en amont, il faudrait construire le resolver une bonne fois pour toutes et une fois construit, on ferait juste des requireFile avec les bonnes informations. Vous avez compris un peu le principe, vous pouvez créer des classes utilitaires et, ici, on pourrait le faire maintenant, pour le footer, sans aucun problème, donc on va venir juste rajouter footer, voyez qu'un petit copier-coller sera suffisant, et ça marche très bien. Ça, c'est une bonne chose de le faire de vous créer des classes utilitaires pour éviter d'avoir, à chaque fois, à taper les mêmes infos, alors, il faut quand même améliorer cette classe, vous avez un peu de travail, mais, mine de rien, vous avez vu le concept, c'est le plus important, et maintenant, vous allez pouvoir vous amuser eh bien, à essayer d'améliorer encore plus cette classe-là, et l'idée, ce serait de n'avoir qu'à taper une seule fois le dir quelque part, pour simplement donner l'information au resolver que c'est bien ça qu'on veut utiliser, et, à partir de là, partout, dans le fichier index.php ou on a besoin de faire des insertions d'autres fichiers, eh bien on aurait plus qu'une méthode à appeler, et ce serait très simple.

L'essentiel de PHP 7

Exploitez les nombreuses possibilités de PHP. Définissez des variables, créez des fonctions, manipulez du texte, abordez la gestion des objets, des opérateurs logiques, etc.

4h25 (52 vidéos)
Aucun commentaire n´est disponible actuellement
 

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !