XI. Les assistants▲
Laravel est équipé d'Artisan qui simplifie bien des tâches mais malgré ses possibilités étendues il ne sait quand même pas tout faire. Un certain nombre d’outils plus ou moins spécialisés ont été créés pour faire gagner du temps dans le développement d'une application. Je vous propose dans ce chapitre un petit tour d'horizon de ce qui existe actuellement en faisant une sélection assez étroite. Pour avoir une vue complète de ce qui est disponible allez voir cette page.
XI-A. Laravel Schema Designer▲
Laravel Schema Designer est sans doute l'outil que j'utilise le plus. Il propose une interface graphique conviviale pour construire le schéma d'une base de données avec des formulaires bien conçus :
Il sait très bien gérer les relations :
Et il les représente visuellement avec des traits entre les tables.
Lorsque le schéma est construit on peut ensuite exporter :
- routes ;
- modèles ;
- contrôleurs ;
- migrations ;
- populations (seed) ;
- vues.
Autrement dit on se retrouve avec une trame de base déjà bien élaborée !
Un concurrent est apparu récemment : Laravel Database Designer :
Il est plus esthétique mais ne génère pas grand-chose…
XI-B. InfyOm▲
InfyOm est un superbe générateur :
Il permet de générer :
- modèle ;
- repository ;
- migrations ;
- requêtes ;
- API ;
- CRUD vues avec la validation.
Je lui ai consacré un article complet sur ce blog et je ne vais donc pas m'étendre ici.
XI-C. MySQL Workbench Export▲
MySQL Workbench est un superbe outil pour gérer une base MySQL :
Avec le « reverse engineer » on peut récupérer le schéma d'un base existante :
Mais ce qui est intéressant c'est qu'il existe un plugin pour faire l'inverse !
Un fois qu'on l'a installé on peut entre autres exporter les migrations :
Sans passer par le Workbench il existe aussi un package qui permet de générer des migrations à partir d'une base existante.
XI-D. Il n'y a pas qu'Eloquent▲
Même si Eloquent est performant on a d'autres choix, en particulier Doctrine et MongoDB.
XI-D-1. Laravel Doctrine▲
Le package Laravel Doctrine permet d'utiliser Doctrine avec Laravel :
Eloquent respecte le pattern « Active Record » (en gros un enregistrement dans une table est traité comme un objet par Eloquent). Doctrine est lui fondé sur le pattern « Data Mapper » (il y a une couche intermédiaire entre la base et les objets). Sans entrer dans le débat entre les amateurs de l'un et de l'autre on va dire qu'Eloquent est fortement couplé à la base alors que Doctrine sépare bien les aspects persistance et entités.
Donc si vous voulez essayer Doctrine ou si vous êtes déjà convaincu (par exemple parce que vous venez du monde Symfony) alors utilisez ce package.
XI-D-2. Laravel MongoDB▲
Le package Laravel MongoDB permet d'utiliser MongoDB avec Laravel :
MongoDB permet une approche NoSQL. C'est assez dépaysant quand on a l'habitude d'utiliser SQL. Les informations ne sont plus sagement rangées dans des lignes d'une table mais dans des documents JSON. Il y a pas mal de tutoriels d'introduction, par exemple celui-ci.
XI-E. En résumé▲
- Il existe de nombreux outils et packages pour faciliter l'écriture du code avec Laravel.
- Laravel Schema Designer permet de générer du code à partir d'une construction visuelle d'une base de données.
- InfyOm est un générateur très complet fonctionnant principalement en ligne de commande.
- Un plugin de MySQL Workbench permet de générer des migrations.
- Deux packages permettent d'utiliser Doctrine ou MongoDB avec Laravel.