Laravel

Un framework qui rend heureux

Voir cette catégorie
Vers le bas
Cours Laravel 11 – les bases – présentation générale
Vendredi 15 mars 2024 17:26

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.

Un framework ?

Approche personnelle

PHP est un langage de programmation populaire et accessible, qui a la réputation d'être facile à installer et omniprésent chez les hébergeurs. Il est relativement simple à aborder, en particulier pour les développeurs ayant déjà des bases en programmation. Cette facilité d'utilisation permet de créer rapidement des applications web fonctionnelles. Cependant, l'autre facette de cette simplicité est que le code généré peut souvent être confus, complexe et manquer de cohérence. Il convient de reconnaître que PHP ne promeut pas l'organisation du code et ne l'impose pas non plus.
Lors de la création d'applications PHP, il est fréquent d'élaborer des routines personnalisées pour les fonctionnalités récurrentes, comme la gestion de pages dynamiques. Une fois qu'une fonction ou une classe a été créée pour accomplir une tâche, il est naturel de s'y référer chaque fois que la même situation se présente. Étant donné qu'il s'agit d'une bibliothèque personnelle, il est nécessaire de la mettre à jour lorsque cela s'avère nécessaire, ce qui peut être parfois fastidieux.
De plus, on a tendance à avoir une hiérarchie de dossiers à laquelle on est habitué et qu'on réplique lors du démarrage du développement d'une nouvelle application. Parfois, on se rend compte que cette habitude peut avoir des effets néfastes, car la hiérarchie ainsi mise en place de façon systématique n'est pas toujours la plus adaptée.
En bref, l'approche personnelle peut être qualifiée de bricolage en fonction des compétences et de la disponibilité de chacun. Cependant, il est important de mettre en place des méthodes d'organisation et de structuration du code afin d'assurer sa lisibilité, sa maintenabilité et sa réutilisabilité à long terme.

(Re)découvrir PHP

Lorsque j'ai découvert PHP à la fin du dernier millénaire, il était à la version 3. À cette époque, il s'agissait principalement d'un langage de script généralement mélangé avec du HTML, qui permettait de créer des templates, d'accéder à des données et de les traiter. L'arrivée de la version 4 en 2000 a apporté plus de stabilité et a introduit les prémices d'une approche orientée objet. Cependant, ce n'est qu'avec la version 5 en 2004 que PHP est devenu un langage de programmation à la hauteur des standards existants pour les autres langages. Les versions 7 et 8 n'ont fait que renforcer sa crédibilité.
Cette évolution incite à abandonner les mauvaises habitudes si vous en aviez. Un site comme http://www.phptherightway.com propose des pistes pour mettre en place de bonnes pratiques. Si vous êtes un bidouilleur de code PHP, je vous recommande vivement de lire ce site, qui devrait vous donner un nouvel éclairage sur ce langage et vous permettre de vous lancer correctement dans le code Laravel.

Un framework

Un framework informatique est, selon Wikipedia, un "ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel". En d'autres termes, il s'agit d'une base homogène composée de briques toutes prêtes à être utilisées. Il existe des frameworks pour tous les langages de programmation, et en particulier pour PHP. Leur nombre est si important qu'il serait fastidieux de les énumérer!
L'utilité d'un framework est d'économiser du temps en évitant de développer ce qui a déjà été fait par d'autres, souvent plus compétents, et qui a en outre été testé et validé par de nombreux utilisateurs. On peut imaginer un framework comme un ensemble d'outils à disposition. Par exemple, si vous devez créer du routage pour votre site, vous pouvez utiliser un composant déjà prêt à l'emploi et qui a fait ses preuves. Cela vous fait gagner du temps, garantit la fiabilité de votre application et vous permet de bénéficier de mises à jour si nécessaire.
Il serait vraiment dommage de ne pas utiliser un framework alors que cela présente pratiquement uniquement des avantages. Outre la réutilisation de composants testés et validés, un framework comme Laravel offre une structure claire et bien organisée pour votre code, ce qui facilite la maintenance et la collaboration dans un projet. De plus, il inclut souvent des fonctionnalités avancées pour la sécurité, la gestion de bases de données, le routage, la validation des données, etc., ce qui permet de créer des applications plus rapidement et de manière plus sécurisée.
 

Pourquoi Laravel ?

Constitution de Laravel

Laravel, créé par Taylor Otwell, introduit une nouvelle façon de concevoir un framework en utilisant ce qui existe de mieux pour chaque fonctionnalité. Par exemple, toute application web a besoin d'un système pour gérer les requêtes HTTP. Au lieu de réinventer la roue, le concepteur de Laravel a simplement utilisé celui de Symfony, en l'étendant pour créer un système de routage efficace. En quelque sorte, Otwell a fait son marché parmi toutes les bibliothèques disponibles. Dans ce cours, nous verrons comment cela a été réalisé. Cependant, Laravel n'est pas seulement un regroupement de bibliothèques existantes (même si certaines personnes insistent lourdement là-dessus), mais aussi de nombreux composants originaux et, surtout, une orchestration de tout cela.
Dans Laravel, vous trouverez :
  • Un système de routage (RESTful et basé sur les ressources)
  • Un créateur de requêtes SQL et un ORM (Mapping objet-relationnel)
  • Un moteur de templates
  • Un système d'authentification pour les connexions
  • Un système de validation
  • Un système de pagination
  • Un système de migration pour les bases de données
  • Un système d'envoi d'emails
  • Un système de cache
  • Un système de gestion des événements
  • Un système d'autorisations
  • Une gestion des sessions
  • Un système de localisation
  • Un système de notifications
Et bien d'autres choses encore que nous allons découvrir ensemble. Il est probable que certains éléments de cette liste ne vous évoquent pas grand-chose pour l'instant, mais cela deviendra plus clair au fur et à mesure que nous progresserons dans les chapitres.
Le but de Laravel est de fournir un environnement de développement agréable et efficace, en combinant le meilleur des autres bibliothèques et frameworks PHP, tout en offrant des fonctionnalités uniques et des conventions de codage claires. Cela permet aux développeurs de se concentrer sur la création d'applications scalables et fiables, plutôt que sur les détails de la gestion des bases de données, du routage ou de l'authentification.

Le meilleur de PHP

Plonger dans le code de Laravel, c'est recevoir un cours de programmation, tant le style est clair et élégant et le code bien organisé. Pour aborder de façon efficace ce framework, il est souhaitable que vous soyez familiarisé avec certaines notions :
  • Les espaces de noms : il s'agit d'une façon de bien organiser le code pour éviter des conflits de nommage. Laravel utilise cette possibilité de façon intensive. Tous les composants sont rangés dans des espaces de noms distincts, de même que l'application créée.
  • Les fonctions anonymes : il s'agit de fonctions sans nom (souvent appelées closures) qui permettent d'améliorer le code. Les utilisateurs de JavaScript y sont habitués. Les utilisateurs de PHP un peu moins, car elles y sont plus récentes. Laravel les utilise aussi de façon systématique.
  • Les méthodes magiques : il s'agit de méthodes qui n'ont pas été explicitement décrites dans une classe mais qui peuvent être appelées et résolues.
  • Les interfaces : une interface est un contrat de constitution des classes. En programmation objet, c'est le sommet de la hiérarchie. Tous les composants de Laravel sont fondés sur des interfaces.
  • Les traits : il s'agit d'une façon d'ajouter des propriétés et méthodes à une classe sans passer par l'héritage, ce qui permet de passer outre certaines limitations de l'héritage simple proposé par défaut par PHP.
Un framework n'est pas fait pour remplacer la connaissance d'un langage, mais pour assister celui (ou celle) qui connaît déjà bien ce langage. Si vous avez des lacunes, il vaut mieux les combler pour profiter pleinement de Laravel. Cela vous permettra non seulement de mieux comprendre le fonctionnement du framework, mais aussi de tirer parti de toutes les fonctionnalités et optimisations qu'il offre. En vous familiarisant avec ces concepts, vous serez en mesure de mieux apprécier la structure et l'élégance du code Laravel, et de mieux maîtriser la création d'applications scalables et fiables.

La documentation

Quand on s'intéresse à un framework il ne suffit pas qu'il soit riche et performant, il faut aussi que la documentation soit à la hauteur. C'est le cas pour Laravel. Vous trouverez la documentation sur le site officiel. Mais il existe de plus en plus de sources d'informations dont voici les principales :

Il existe aussi de bon livres mais pratiquement tous en anglais.

MVC ? POO ?

MVC

On peut difficilement parler d'un framework sans évoquer le patron Modèle-Vue-Contrôleur. Pour certains il s'agit de la clé de voûte de toute application rigoureuse, pour d'autres c'est une contrainte qui empêche d'organiser judicieusement son code. De quoi s'agit-il ? Voici un petit schéma pour y voir clair :

C'est un modèle d'organisation du code :

  • le modèle est chargé de gérer les données,
  • la vue est chargée de la mise en forme pour l'utilisateur,
  • le contrôleur est chargé de gérer l'ensemble.

En général on résume en disant que le modèle gère la base de données, la vue produit les pages HTML et le contrôleur fait tout le reste. Dans Laravel :

  • le modèle correspond à une table d'une base de données. C'est une classe qui étend la classe Model qui permet une gestion simple et efficace des manipulations de données et l'établissement automatisé de relations entre tables,
  • le contrôleur se décline en deux catégories : contrôleur classique et contrôleur de ressource (je détaillerai évidemment tout ça dans le cours),
  • la vue est soit un simple fichier avec du code HTML, soit un fichier utilisant le système de template Blade de Laravel.

Laravel propose ce patron mais ne l'impose pas. Nous verrons d'ailleurs qu'il est parfois judicieux de s'en éloigner parce qu'il y a des tas de chose qu'on n'arrive pas à caser dans cette organisation. Par exemple si je dois envoyer des emails où vais-je placer mon code ? En général ce qui se produit est l'inflation des contrôleurs auxquels on demande des choses pour lesquelles ils ne sont pas faits.

POO

Popularité

Laravel s'est établi en quelques années au sommet de l'usage des frameworks PHP. Voici des statistiques relativement récentes basées sur la popularité :

En résumé

  • Un framework fait gagner du temps et donne l'assurance de disposer de composants bien codés et fiables
  • Laravel est un framework novateur, complet, qui utilise les possibilités les plus récentes de PHP et qui est impeccablement codé et organisé
  • La documentation de Laravel est complète, précise et de nombreux tutoriels et exemples sont disponibles sur la toile
  • Laravel adopte le patron MVC mais ne l'impose pas, il est totalement orienté objet


Par bestmomo

Aucun commentaire