L'article "Gérez vos arbres hiérarchiques avec Eloquent" sur Laravel France explique les défis de la gestion des structures arborescentes en base de données et présente deux approches : l'utilisation d'une colonne parent_id et le modèle Nested Set. Ce dernier, bien que plus complexe à écrire, offre des performances de lecture constantes grâce à des valeurs _lft et _rgt. Le package kalnoy/nestedset intègre ce modèle dans Eloquent, simplifiant ainsi la manipulation des arbres hiérarchiques. L'installation et la configuration sont simples, et le package gère automatiquement les calculs des valeurs _lft et _rgt.
Laravel Eloquent utilise le modèle Active Record, qui permet de manipuler les lignes d’une base de données comme des objets PHP natifs, intégrant directement les opérations CRUD (Create, Read, Update, Delete). Chaque modèle (comme Post) correspond à une table et encapsule à la fois les données et la logique de persistance, simplifiant ainsi les interactions avec la base. Ce pattern offre une productivité rapide, une syntaxe lisible et une convention claire, mais peut aussi entraîner un couplage fort avec la base, des modèles surchargés et des tests plus complexes. Pour atténuer ces inconvénients, il est conseillé de garder les modèles légers, d’encapsuler les requêtes complexes et de privilégier les tests d’intégration. L’article illustre ces concepts avec une implémentation minimaliste en PHP pur, démontrant comment Eloquent gère la correspondance table-objet, le suivi des modifications et la persistance des données, ce qui rend son "magie" plus accessible et compréhensible.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
L'auteur explique clairement les différents types de relation dans Eloquent.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre... mais les principes exposés ici s'appliquent à d'autres ORM comme Doctrine (a priori ?)
La suite du tutoriel sur l'utilisation conjointe de Laravel et Eloquent : ici l'auteur construit sa base de données avec Eloquent (l'ORM de Laravel), Faker (pour générer des utilisateurs crédibles) et Flysystem (pour le stockage de photos)
présentation de l'ORM Eloquent (utilisable avec le framework PHP Laravel)