Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

PHP : Utilisation des micro-frameworks​

Naviguer dans les pages

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Silex dispose d'un système de routing. Grâce à lui, mettez en place la navigation au travers des pages.
08:17

Transcription

Alors, le routing de manière générale, à quoi ça sert ? Ça sert tout simplement à avoir des verbes http sur lesquels on va pouvoir se placer, et on va pouvoir dire qu'en get, par exemple, on veut une page, en post, on veut quelque chose. Généralement, on va utiliser quand même les verbes http de la meilleure manière possible, c'est-à-dire avec le get on va afficher des informations, avec le post on va en soumettre. Dans le cas qu'on a là forcément ça n'a pas vraiment de sens de faire comme ça. Pourquoi ? Parce que pour le moment tout ce que l'on veut ici c'est bien du get. On va devoir adapter un petit peu pour parler du routing. Ici, je vais faire get, à cet endroit-là, plutôt que faire un match. Ça revient exactement à la même chose, sauf que pour le coup vous allez utiliser get, et sur le / on va demander d'avoir exactement la même chose. Et ça ne va pas changer grand-chose réellement dans le fonctionnement puisque ça va fonctionner pareillement. Maintenant, imaginons que j'ai envie de pouvoir soumettre. Alors, je vais devoir modifier un tout petit peu cette partie-là pour avoir quelque chose d'un petit peu plus logique. On va retirer toute cette partie qui pour le moment ne sert pas à grand-chose, on va mettre du get comme ça parce que logiquement sur le get on ne récupère pas forcément les paramètres. Donc, on va simplement ici adapter un tout petit peu. Et on va aussi à cet endroit-là, faire un template qu'on va mettre dans une variable template, et on va utiliser la syntaxe rdoc avec un petit EOF, comme ça. Et on va ici se mettre un petit formulaire. Donc, un formulaire, qu'est-ce que c'est ? C'est juste une balise form avec à l'intérieur un petit input, et on va lui mettre ici un name qui va être aussi name, pour récupérer le nom de la personne, et on va mettre un petit bouton de type submit. On va faire type=submit et on va simplement ici mettre Envoyer pour dire que l'on souhaite soumettre. Si vous voulez avoir un petit label, vous pouvez aussi utiliser un placeholder marqué avec votre nom. Et là, on va renvoyer ce template. En renvoyant ce template, ce qui est intéressant c'est que vous pouvez coder de petits bouts de template dans vos fichiers PHP en faisant quelque chose de sympa, et dans les EOF, vous pouvez même placer des variables, ce qui est génial puisqu'on va pouvoir avoir quelque chose de très propre. Du coup, les parameters ici ne servent plus à rien. Alors ça, on va le laisser avec un getContent pour récupérer le contenu. Donc, quand je navigue sur la page en get, je vais m'attendre à récupérer ici l'information, c'est-à-dire ce formulaire. On va vérifier que ça fonctionne bien, on va recharger. Effectivement, j'ai bien un petit formulaire qui s'affiche. Maintenant, j'aimerais que lorsque je vais soumettre ce formulaire en post, je puisse afficher quelque chose d'autre. Ce que je vais faire c'est que je vais simplement aller matcher le post à cet endroit-là, et je vais lui dire que quand tu postes sur l'URL, à cet endroit, à ce moment-là tu viens récupérer les informations. C'est ici que je vais avoir ma Request. Donc, je vais pouvoir récupérer les informations qui ont été soumises, et ici, je vais vouloir les passer. Attention, parce que quand vous soumettez les informations, ce n'est plus request/query comme tout à l'heure, mais c'est request/request parce que vous récupérez du post. Donc, tout ce qui est soumis en post se trouvera dans le sous-objet request, tout ce qui est soumis par l'URL se trouvera dans query. C'est la petite différence entre les deux. Ça veut aussi dire qu'ici on s'attend à pouvoir récupérer les informations qui ont été soumises. Alors, est-ce que ce n'est pas mieux d'avoir deux méthodes ? Je vous l'ai dit, on est en PHP. On pourrait faire ici du postContent pour récupérer ce qui est posté, et donc ça veut dire qu'on va créer une nouvelle fonction. Donc, function postContent ici qui prendra bien évidemment une request, cette request on va l'exploiter pour sortir les informations. Alors, le name qu'on a là sera donc égal à request, get et name, et bien évidemment ici on va faire un return, et là on va faire un petit sprintf très simple, il n'y a pas besoin de faire quelque chose d'important. On va juste faire un petit Bonjour avec le nom que l'on aura récupéré qui sera ici, et vous allez voir que le fonctionnement va être absolument le même, ce qui est intéressant c'est qu'on commence à avoir des méthodes différentes en fonction de ce qu'on veut faire, et on commence à pouvoir exploiter le routing au travers du micro-framework. Donc, on enregistre ça, et on va simplement ici soumettre Julien, on va envoyer, et on voit qu'effectivement pour le moment ce n'est pas du post, mais ça fait toujours du get. Alors, pourquoi est-ce que cela fait ça ? Parce que notre formulaire que l'on a ici, il va falloir obligatoirement lui donner une méthode. Si vous ne mettez pas de méthode, c'est du get par défaut. Donc, on va lui dire que c'est du post que l'on souhaite. On va revenir en arrière, on va recharger la page, et on va taper Julien ou ce que vous voulez, et on va envoyer. Et vous voyez qu'ici on peut servir au travers de notre micro-framework. En utilisant en plus de ça les formulaires, on peut servir de l'information différente en fonction du verbe. Alors, ça ne s'arrête pas là, pourquoi ? Parce qu'on pourrait aussi lui dire qu'ici c'est une URL différente, donc vraiment agir sur le routing. On pourrait lui dire que là c'est une URL qui s'appelle submit. Attention, ça veut dire que dans ce cas-là, il va falloir lui mettre une action, et l'action ça va être submit. Sinon, ça ne marchera pas. Et là, vous allez bien travailler sur du vrai routing avec des URL que vous pouvez concevoir à l'avance, et avec des URL que vous allez pouvoir travailler. Donc là, maintenant, si je soumets Julien et si je fais Envoyer, ça va aller sur submit. Mais alors, regardez ce qui se passe, il nous dit que ce n'est pas bon parce qu'on a mis un /. Il ne faut pas en mettre. Si vous mettez un /, ça ne marchera pas, vous allez avoir des problèmes. Vous allez être obligé ici de mettre l'URL que vous souhaitez sans /. Et on se rend encore compte que ça ne marche pas. Pourquoi ça ne marche pas ? Parce que c'est app.php/submit. Il va vraiment falloir faire attention à ce que vous tapez si vous avez envie d'utiliser l'URL. Bien sûr, une méthode supplémentaire existe et vous pourrez utiliser le fait de réécrire les URL, et ça marchera très bien. Donc, vous pouvez le faire avec votre serveur, sinon il va falloir se placer sur le fichier qui gère ça, ou bien ça ne marchera pas, et vous voyez que l'URL ne sera pas prise en compte. Alors, attention à bien recharger la page quand vous revenez dessus, sinon ce n'est pas pris en compte. Là, vous allez taper app.php/submit, le framework comprend ce que vous lui demandez. On est bien en train d'exécuter app.php/submit, et ça fonctionne. Une autre technique aurait été de renommer app.php en index.php, ce qui fonctionne aussi puisque ça va récupérer l'index et ça va réécrire. Qu'est-ce qu'on peut faire d'autre de génial avec le routing ? Alors, il y a toute une page extrêmement intéressante sur le routing dans la documentation de Silex qu'on a ici, et vous allez trouver tout cela bien évidemment dans la doc. Ici, au niveau de l'organisation des contrôleurs, des middlewares et de l'usage. Donc, il y en a un petit peu partout. Alors, si vous regardez dans Usage, vous allez avoir les variables de route, les exemples avec du post et comment est-ce qu'on va poster de l'information, vous verrez bien sûr qu'on peut utiliser la request comme ça en injection. Alors, je ne l'ai pas dit, mais évidemment c'est de l'injection de dépendance. Quand vous injectez ici, il le récupère et il l'injecte. Tout ça est fait un peu automatiquement. Et surtout, regardez ce qui est intéressant, c'est que vous allez carrément pouvoir matcher avec ce terme-là ouverture et fermeture d'accolades, on va pouvoir récupérer de l'information et carrément la passer ici. Ça veut quand même dire que dans ce cas-là, vous constituez cette information à l'avance, donc il faut vraiment constituer des URL proprement. Vous voyez que là, il faut vraiment constituer vous-même l'URL pour récupérer l'information derrière. Mais il y a plein de possibilités, et il y a un moteur de routing qui est complet avec lequel vous allez pouvoir faire ce que vous voulez. Donc, n'hésitez pas à pousser un peu de ce côté-là parce que ça fait partie des choses simples qu'on peut utiliser et qui sont extrêmement intéressantes, et qui vous permettent de construire complètement un site avec de vraies URL très propres.

PHP : Utilisation des micro-frameworks​

Prenez en main les 4 outils les plus utilisés en matière de micro-frameworks : Lumen, Silex, Slim et FatFree. Mettez en place des applications PHP légères et puissantes.

1h40 (32 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Slim Slim 3
Fat-Free Framework Fat-Free Framework 3.6
Silex Silex 2
Lumen Lumen 5.2
Spécial abonnés
Date de parution :30 janv. 2017

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 !