Dressons un bref historique.
Laravel a été créé par Taylor Otwell en juin 2011. Framework web open source entièrement écrit en Php en programmation orientée Objet, il est basé sur le code de Symfony dont il partage à ce jour encore 30% du code par l’utilisation de « Symfony component ». Il est distribué sous licence MIT et Ses sources se trouvent hébergées sur GitHub.
Très rapidement Laravel a suscité un engouement qui depuis ne s’est pas démenti. Projet PHP le mieux noté de GitHub en 2016, Laravel a su se créer une communauté d’utilisateurs très actifs. Ainsi, près de 135 000 projets ont été construits sur Laravel plutôt que sur d’autres frameworks PHP en 2020.
Laravel se distingue de ses comparses et concurrents open source tels que Yii, CakePHP, CodeIgniter, Slim Framework, Symfony et quelques autres par la richesse de ses fonctionnalités et de ses outils de développement que nous allons détailler plus avant. Cette richesse, recherchée par les codeurs, facilite le développement rapide d’applications Web adéquates.
Pourquoi utiliser cette application ?
Laravel est un Framework bien documenté. Ce point permet de gagner du temps, notamment vis-à-vis de se concurrents directs. Cet avantage est encore accru par la présence d’une communauté active sans cesse grandissante. On comprend bien qu’une telle communauté permet des réponses rapides aux problèmes et doutes qui peuvent survenir dans le cadre du développement. Elle assure de même la pérennité de la plateforme car, par un effet boule de neige, plus l’outil est utilisé par les développeurs et plus les développeurs se tourneront vers l’outil…
Les avantages :
Afin de comprendre cette progression de Laravel, il convient de se pencher plus en détails sur ses fonctionnalités et avantages.
Parmi les vertus intrinsèques de l’outil on citera tout d’abord la propreté et la souplesse du code généré. Laravel est assurément très complet sans l’être trop. Cela permet, outre une documentation cohérente, une durée d’apprentissage contenue. Le code, par sa simplicité, sa lisibilité, sa concision reste accessible.
On retrouve dans ce code les standards attendus de programmation ainsi que la possibilité d’ajouter facilement des extensions. Le processus de développement se trouvera simplifié dans son déroulement par un code propre et réutilisable.
Laravel s’inspire par ailleurs de l’existant en ce qui concerne les fonctionnalités de déploiement et reprend à son compte le système de routage de symfony en l’étoffant pour le rendre plus performant.
Il est ainsi aisé de regrouper des routes, créer des ressources pour les pages CRUD (create, read, update, delete), attacher des filtres et lier automatiquement des modèles aux paramètres de la demande.
Le package API dingo intégré étend encore davantage les possibilités de routage (personnalisateur des réponses par les transformateurs, protection des routages et fournisseurs d’authentification personnalisés, mécanisme de requêtes en interne sur l’API…). On perçoit immédiatement ce qu’a d’avantageux cette propreté, cette efficacité du routage : une économie de code, donc de temps.
Les fonctionnalités :
Le noyau intègre un modèle IoC (inversion of control) :
Ce dernier permet la personnalisation et la réécriture de n’importe quelle partie du framework. Rapide, fonctionnel, il peut aussi être étendu librement selon le contexte de développement. La bibliothèque swiftmailer est reprise comme d’autres modules éprouvés auxquels Laravel ajoute ses propres composants pour consolider l’ensemble du process. De plus, Laravel facilite l’intégration de bibliothèques tierces par Composer ou Packagist dans les projets si nécessaire.
Les Concepteurs de Laravel ont repris la console en ligne de commandes (CLI) de Symfony qui a été étendue:
Nommée Artisan, elle rend le processus de développement simple et rapide. Les migrations de données, la gestion de bases de données s’en trouvent facilitées. Par l’usage de code squelette ou de modèles de contrôleurs, Artisan fait disparaitre tout l’aspect manuel et répétitif de l’activité de codage. Le développeur pourra en outre générer des fichiers MVC et gérer les configurations de données en créant ses propres commandes.
Laravel utilise Eloquent ORM (Object-Relational Mapping) implémentant Active Record :
Il est possible de créer une correspondance entre les classes PHP et la base de données et ainsi maintenir une interaction facile avec les objets de la base de données de l’application en utilisant une syntaxe éloquente ou expressive. Cet outil sera précieux aux yeux des développeurs qui pourront effectuer des requêtes de base de données avec une syntaxe PHP simple. Encore une fois la simplicité, cette possibilité de s’affranchir de requêtes SQL complexes et alambiquées, est gage de temps gagné.
L’intégration de moteur de création de modèles Blade :
Il s’agit d’un moteur aux multiples possibilités qui aidera les développeurs Web à rendre le processus de développement plus fluide et aisé par l’usage de mises en page prédéfinies. Blade permet d’afficher les données et d’étendre les dispositions sans affecter les performances et la vitesse de l’application. La mise en page est facilitée par la création de layouts, de sous templates et de composants réutilisables.
- L’outil est livré avec un ensemble spécifique de fonctionnalités pour effectuer des tests unitaires sur vos applications Web / applications mobiles via PHPUnit. L’outil peut exécuter des tests unitaires, concernant de petites portions de codage (Feature) ou tests de fonctionnalités concernent des bases de code plus importantes avec plusieurs objets (Unit).
- Laravel est capable d’exécuter plusieurs tests unitaires simultanément pour s’assurer que toute nouvelle modification du code est correctement testée et évaluée dans le contexte. Ces fonctions de test étendu assurent absence de bogue et performance à l’application.
Le patron de Laravel est le MVC (Modèle-Vue-Contrôleur) :
Globalement, le déroulé est le suivant : le modèle gère les données, la vue s’affiche chez l’utilisateur, le contrôleur gère l’ensemble. On connait les avantages et contraintes à suivre un modèle d’organisation. La contrainte est évidente : on ne peut pas toujours organiser son code comme on le voudrait. Mais le corollaire présente un avantage évident : cela confère de la rigueur et de l’ordre au sein de l’application, choses précieuses dans un cadre collaboratif…
Une fois acquise, la logique MVC de Laravel crée des automatismes chez le développeur, dans la structure de codage de l’application, et facilite grandement également la recherche de fichiers dans leurs répertoires logiques des grands projets.
Conclusion :
Voilà en bref ce que Laravel pourra offrir aux développeurs web, et on pourrait ajouter d’autres points cruciaux tels que le constructeur de formulaires très complet, le système d’envoi de mail, la file d’attente asynchrone et tâches d’arrière-plan pour les tâches de longue durée, etc. Mais nous dépasserions le simple aperçu de ce vaste outil.
Laravel c’est quoi ? C’est le framework du moment. Pour qui ? Pour tous ceux qui veulent développer en PHP sur une plateforme pérenne.