laravel

Laravel fournit des fonctionnalités en termes de routage de requête, de mapping objet-relationnel (un système baptisé Eloquent implémentant Active Record), d'authentification, de vue (avec Blade), de migration de base de données, de gestion des exceptions et de test unitaire1.

Les chapitres de la formation laravel



                    

Dans ce premier chapitre je vais évoquer PHP, son historique rapide et sa situation actuelle. Je vais aussi expliquer l'intérêt d'utiliser un framework pour ce langage et surtout pourquoi j'ai choisi Laravel. J'évoquerai enfin le patron MVC et la Programmation Orientée Objet.

                    

Dans ce chapitre nous allons faire connaissance avec le gestionnaire de dépendances Composer. Nous allons voir également comment créer une application Laravel. Nous verrons enfin comment le code est organisé dans cette application. Pour utiliser Laravel et suivre ce chapitre et l'ensemble du cours vous aurez besoin d'un serveur équipé de PHP avec au minimum la version 5.5.9 et aussi de MySQL. Il existe plusieurs applications "tout en un" faciles à installer : wampserver, xampp, easyphp... Personnellement j'utilise wamp qui répond sans problème à toutes mes attentes et qui permet de basculer entre les versions de PHP et de MySQL en un simple clic. Il existe aussi une solution toute prête, Homestead, facile à mettre en oeuvre sous Linux, mais beaucoup moins conviviale avec Windows. Pour ce dernier Il existe une autre possibilité bien pensée : Laragon. Quelle que soit l'application que vous utilisez vérifiez que vous avez la bonne version de PHP (minimum 5.5.9). D'autre part les extensions PDO, Tokenizer, OpenSSL et Mbstring de PHP doivent être activées.

                    

Dans ce chapitre nous allons nous intéresser au devenir d'une requête HTTP qui arrive dans notre application Laravel. Nous allons voir l'intérêt d'utiliser un fichier htaccess pour simplifier les urls. Nous verrons aussi le système de routage pour trier les requêtes.

                    

Nous avons vu précédemment comment la requête qui arrive est traitée par les routes. Voyons maintenant les réponses que nous pouvons renvoyer au client. Nous allons voir le système des vues de Laravel avec la possibilité de transmettre des paramètres. Nous verrons aussi comment créer des templates avec l'outil Blade.

                    

Nous avons vu le cycle d'une requête depuis son arrivée, son traitement par les routes et sa réponse avec des vues qui peuvent être boostées par Blade. Avec tous ces éléments vous pourriez très bien réaliser un site web complet mais Laravel offre encore bien des outils performants que je vais vous présenter. Pour bien organiser son code dans une application Laravel il faut bien répartir les tâches. Dans les exemples vus jusqu'à présent j'ai renvoyé une vue à partir d'une route, vous ne ferez jamais cela dans une application réelle (même si personne ne vous empêchera de le faire ! ). Les routes sont juste un système d'aiguillage pour trier les requêtes qui arrivent. Mais alors qui s'occupe de la suite ? Et bien ce sont les contrôleurs, le sujet de ce chapitre.

                    

Dans bien des circonstances le client envoie des informations au serveur. La situation la plus générale est celle d'un formulaire. Nous allons voir dans ce chapitre comment créer facilement un formulaire avec Laravel, comment réceptionner les entrées et nous améliorerons notre compréhension du routage.

                    

Nous avons vu dans le chapitre précédent un scénario mettant en oeuvre un formulaire. Nous n'avons imposé aucune contrainte sur les valeurs transmises. Dans une application réelle il est toujours nécessaire de vérifier que ces valeurs correspondent à ce qu'on attend. Par exemple un nom doit comporter uniquement des caractères alphabétiques et avoir une longueur maximale, une adresse email doit correspondre à un certain format. Il faut donc mettre en place des règles de validation. En général on procède à une première validation côté client pour éviter de faire des allers-retours avec le serveur. Mais quelle que soit la pe

                    

Dans ce chapitre nous verrons la configuration et la gestion des sessions avec un exemple simple d'envoi et d'enregistrement de fichiers images dans un dossier à partir d'un formulaire.

                    

Dans ce chapitre nous allons reprendre l'exemple précédent de l'envoi de photos en nous posant des questions d'organisation du code. Laravel ce n'est pas seulement un framework pratique, c'est aussi un style de programmation. Il vaut mieux évoquer ce style le plus tôt possible dans l'apprentissage pour prendre rapidement les bonnes habitudes. Vous pouvez très bien créer un site complet dans le fichier des routes, vous pouvez aussi vous contenter de contrôleurs pour effectuer tous les traitements nécessaires. Je vous propose une autre approche, plus en accord avec ce que nous offre Laravel.

                    

partir de ce chapitre il serait souhaitable que vous installiez une barre de débogage. La plus utile est celle proposée par barryvdh. Suivez les indications fournies pour l'installation, ça vous fera un bon exercice :). Dans ce chapitre nous allons commencer à aborder les bases de données. C'est un vaste sujet auquel Laravel apporte des réponses efficaces. Nous allons commencer par voir les migrations et les modèles. Pour ce chapitre je vais encore prendre un exemple simple en imaginant un formulaire destiné à l'inscription à une lettre d'information. On va se contenter d'envoyer un email et de mémoriser cet email dans une table d'une base de données.

                    

Dans ce chapitre nous allons commencer à étudier les ressources qui permettent de créer un contrôleur RESTful adapté à une ressource. Comme exemple pratique nous allons prendre le cas d'une table d'utilisateurs, une situation qui se retrouve dans la plupart des applications.

                    

L'authentification constitue une tâche fréquente. En effet il y a souvent des parties d'un site qui ne doivent être accessibles qu'à certains utilisateurs, ne serait-ce que l'administration. La solution proposée par Laravel est d'une grande simplicité parce que tout est déjà préparé comme nous allons le voir dans ce chapitre.

                    

Pour le moment nous n'avons manipulé qu'une table avec Eloquent. Dans le présent chapitre nous allons utiliser deux tables et les mettre en relation. La relation la plus répandue et la plus simple entre deux tables est celle qui fait correspondre un enregistrement d'une table à plusieurs enregistrements de l'autre table, on parle de relation de un à plusieurs ou encore de relation de type 1:n. Nous verrons également dans ce chapitre comment créer un middleware. Comme exemple pour ce chapitre je vais prendre le cas d'un petit blog personnel avec : un affichage des articles, des visiteurs qui pourront consulter les articles, des utilisateurs enregistrés qui pourront aussi rédiger des articles (donc possibilité de se connecter et se déconnecter), des administrateurs qui pourront aussi supprimer des articles.

                    

Dans le précédent chapitre nous avons vu la relation de type 1:n, la plus simple et la plus répandue. Nous allons maintenant étudier la relation de type n:n, plus délicate à comprendre et à mettre en œuvre. Nous allons voir qu'Eloquent permet de simplifier la gestion de ce type de relation. Je vais poursuivre l'exemple du blog personnel débuté au chapitre précédent en ajoutant la possibilité d'ajouter des mots-clés (tags) aux articles. Ce chapitre est un peu long mais j'ai préféré tout rassembler ici.

                    

Dans les chapitres précédents on a plusieurs fois dû créer des migrations, des populations, des contrôleurs, des modèles... Artisan possède des commandes pour effectuer certaines de ces opérations mais il ne va pas bien loin et il nous a fallu créer pas mal de code qui, de toute évidence, pourrait plus ou moins facilement être automatisé. Il est possible d'améliorer les commandes d'artisan ou même de s'en créer des nouvelles. Il existe aussi des assistants pour nous aider dans ces tâches un peu pénibles ou répétitives.

                    

Nous avons jusqu'à présent utilisé Eloquent pour générer nos requêtes. Malgré la pertinence de celui-ci il est parfois nécessaire de générer des requêtes qui dépassent ses compétences. C'est alors qu'intervient le Query builder, un outil pratique de génération de requêtes avec une syntaxe explicite qui est le parfait compagnon d'Eloquent.

                    

Une application se développe et se teste en local mais arrive un moment où il faut la mettre sur un serveur pour qu'elle devienne visible et accessible. Ce déploiement n'est pas forcément une tâche aisée selon le contexte. Dans ce chapitre nous allons faire un petit tour d'horizon de ce qu'il convient de faire sans pouvoir être exhaustif étant donné la multiplicité des configurations existantes.

                    

On a vu comment créer des classes bien organisées et se contentant d'effectuer leur tâche. Par contre au niveau des vues c'est une autre histoire. En général on utilise un framework CSS, par exemple Bootstrap dont je me suis servi dans les exemples de ce cours. Mais que se passe-t-il le jour où ce framework évolue ou si on décide d'en changer ?

                    

Lorsqu'on crée un site c'est souvent dans une optique multi-langages. On parle alors d'internationalisation (i18n) et de localisation (L10n). L'internationalisation consiste à préparer une application pour la rendre potentiellement adaptée à différents langages. La localisation consiste quant à elle à ajouter un composant spécifique à une langue. C'est un sujet assez complexe qui ne se limite pas à la traduction des textes mais qui impacte aussi la représentation des dates, la gestion des pluriels, parfois la mise en page... Qu'à a nous proposer Laravel dans ce domaine ? Nous allons le voir en rendant notre petit blog disponible en français et en Anglais.

                    

Ajax est une technologie Javascript fort répandue qui permet d'envoyer des requêtes au serveur et de recevoir des réponses sans rechargement de la page. Il est par ce moyen possible de modifier dynamiquement le DOM, donc une partie de la page. Dans ce chapitre nous allons voir comment mettre en œuvre Ajax avec Laravel. Nous allons poursuivre l'exemple de blog personnel avec cette fois une barre de navigation dans la page principale et le formulaire de connexion intégré à cette barre. On va utiliser Ajax pour connecter l'utilisateur à partir de ce formulaire et ensuite adapter l'apparence en tenant compte du fait qu'il peut s'agir d'un administrateur. On ajoutera de la même façon la déconnexion.

                    

Les développeurs PHP n'ont pas été habitués à faire des tests pour leurs applications. Cela est dû à l'histoire de ce langage qui n'était au départ qu'une possibilité de scripter au milieu du code HTML mais qui s'est peu à peu développé comme un langage de plus en plus évolué. Les créateurs de frameworks ont initié une autre façon d'organiser le code de PHP, en particulier ils ont mis en avant la séparation des tâches qui a rendu la création de tests possible.