Eloquent

Dev back

Laravel Route Binding Behind the Curtains

Cet article explore en profondeur le fonctionnement du 'Route Binding' dans Laravel, détaillant chaque étape du cycle de vie d'une requête depuis la capture de l'URI jusqu'à l'injection dans le contrôleur. Il distingue la liaison explicite et implicite, montre comment les paramètres sont résolus avant d'atteindre le contrôleur, et explique les implications de ces mécanismes pour le développement d'applications. La compréhension de ce processus peut rendre l'utilisation de fonctionnalités avancées plus prévisible.

Dev back

Gérez vos arbres hiérarchiques avec Eloquent

L'article présente une approche pour gérer des structures arborescentes en base de données en utilisant Eloquent et le modèle Nested Set. Ce modèle améliore les performances des requêtes en permettant de récupérer tous les descendants d'un nœud en une seule requête, contrairement à la méthode classique qui nécessite des requêtes récursives. La librairie kalnoy/nestedset facilite cette intégration dans Eloquent, permettant ainsi de manipuler les arbres sans complexité supplémentaire.

Dev back

Stopping Laravel SQL Injection with sole()

L'article explique comment la méthode 'sole()' de Laravel peut aider à prévenir les injections SQL. En contraignant les requêtes à retourner une seule ligne, elle ajoute une couche de sécurité, même lorsqu'on utilise des requêtes SQL brutes. L'auteur met en garde contre les pratiques non sécurisées et recommande d'utiliser 'sole()' pour extraire des enregistrements uniques afin de réduire le risque d'injection SQL.

Dev back

A Case For Custom Collections

L'article aborde l'utilisation de collections personnalisées dans le framework Laravel. Il explique comment une nouvelle fonctionnalité permet de spécifier une classe de collection personnalisée dans les modèles Eloquent, facilitant ainsi la communication de l'intention et l'encapsulation de la logique. L'auteur discute des avantages et des inconvénients des collections personnalisées, en soulignant qu'elles sont surtout bénéfiques dans les applications de plus grande envergure où des opérations répétées sont réalisées sur des ensembles de données, tout en étant moins nécessaires dans des applications plus petites.

Dev back

Laravel DDD - Querying Records in our Domain

Cet article explique comment utiliser le Domain-Driven Design (DDD) avec Laravel pour interroger efficacement les enregistrements dans un domaine. Il présente la création d'une requête pour récupérer un enregistrement de Post en fonction d'un slug, ainsi que l'importance d'abstraire la logique d'interrogation dans le domaine pour améliorer la maintenabilité de l'application.

Dev back

Tappable Query Scopes in Laravel

Cet article explore l'idée des "tappable query scopes" dans Laravel, qui permettent d'appliquer plusieurs portées de requêtes de manière propre en utilisant la méthode tap(). Il décrit comment créer des portées basées sur des classes qui sont invoquables et comment utiliser un macro pour étendre le builder Eloquent afin d'appliquer plusieurs portées en un seul appel, rendant ainsi le code plus lisible et organisé.

Dev back

Working with Laravel Model Events

Cet article explore différentes approches pour gérer les événements des modèles dans Laravel, en discutant des avantages et des inconvénients de chaque méthode. Les méthodes examinées incluent l'utilisation de la méthode static boot, des traits, des observateurs de modèle, et l'exploitation des propriétés du modèle Eloquent. L'auteur conclut qu'il n'y a pas de solution unique, et qu'il est essentiel de choisir la méthode adaptée à chaque cas d'utilisation spécifique.

Dev back

Valid validators validating data

Cet article explore les méthodes de validation des données dans Laravel, en particulier l'utilisation des demandes de formulaire et des validateurs pour obtenir un code propre et efficace. L'auteur partage son cheminement personnel en matière de validation, soulignant l'importance d'un code testable et scalable. Plusieurs approches de validation sont présentées, y compris l'intégration dans les modèles Eloquent, ainsi que la centralisation des règles de validation. Les avantages et inconvénients de chaque méthode sont discutés, encourageant les développeurs à réfléchir à leur propre expérience.

Dev back

Building APIs in Laravel

Cet article traite de la conception efficace d'API en utilisant Laravel. Il souligne l'importance de définir le but de l'API et ses cas d'utilisation avant de commencer le développement. L'accent est mis sur l'élimination des points de douleur potentiels en testant l'intégration dès le début. L'auteur propose également une approche claire pour gérer les routes de l'API, tout en minimisant la duplication de code grâce à des classes de requêtes. Enfin, il encourage les développeurs à construire leurs API de manière logique pour leur équipe, afin d'optimiser la productivité et d'assurer la maintenabilité.

Dev back

Poor performance of Eloquent ORM in comparison to Doctrine - SarvenDev

Cet article compare la performance de deux ORM, Eloquent et Doctrine, en soulignant que Doctrine est généralement plus rapide lors de la lecture de données à partir de la base de données. Il note que l'utilisation de modèles de lecture est une meilleure approche pour optimiser la récupération des données, car Eloquent nécessite plusieurs étapes après l'hydratation, contrairement à Doctrine. En moyenne, Doctrine est 10 ms plus rapide par requête.