Cours Laravel 5.5 – les données – 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. Il est ainsi apparu un certain nombre d’outils plus ou moins spécialisés pour faire gagner du temps dans le développement d’un 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.

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 !

Il est apparu récemment un concurrent : Laravel Database Designer :

Il est plus esthétique mais ne génère pas grand chose…

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.

MySQL Workbench Export

MySQL Workbench est un superbe outil pour gérer une base MySQL :

Avec le « reverse ingeneer » 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.

Il n’y a pas qu’Eloquent

Même si Eloquent est performant on a d’autres choix, en particulier Doctrine et MOngoDB.

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 les 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.

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.

En résumé

  • Il existe de nombreux outils et packages pour facilité 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.

Laisser un commentaire