Florent Destremau discute de l'utilisation des DTO (Data Transfer Objects) dans les formulaires, soulignant que leur utilisation est souvent présentée comme une évidence sans considérer le contexte et le coût de maintenance. Il illustre cela avec un exemple simple où l'ajout d'un DTO et d'un service de mapping pour une entité basique crée une sur-complexité et une duplication de code. Il argue que pour des opérations CRUD simples, les DTO n'apportent que peu de valeur et recommande plutôt d'écrire des tests pour protéger le code. Il montre comment déplacer les contraintes de validation sur l'entité et utiliser du typage strict peut simplifier le code tout en maintenant une bonne robustesse. Il conclut que cette approche résulte en un couplage plus souple et une couverture de test accrue, malgré une perception initiale de moins de rigueur.
Tout est dans le titre
Tout est dans le titre
L'auteur passe en revue l'installation de Symfony, la configuration d'un Docker, la création d'un CRUD pour une entité, les tests unitaires, l'utilisation de Encore pour la gestion du front end, l'enregistrement en base de données des données de session, et la configuration de Symfony lorsque l'application est derrière un load balancer... Très complet donc :-)
Tout est dans le titre
Tout est dans le titre - à noter la possibilité de lancer des requêtes Doctrine avec bin/console doctrine:query:sql
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre, ça s'intègre bien avec Symfony2
Le code obtenu par les "générateurs automatiques" de Symfony2 peut être très verbeux (voire "sale") : l'auteur prend en exemple le générateur de CRUD et montre comment un refactoring peut nettement alléger le résultat
5e article sur les couches de service en PHP : ajout d'un "mapper" pour lancer des opérations CRUD sur les entités utilisateur et pour retourner ces objets du domaine au format XML
Série de tutoriels sur les couches de service en PHP : 1er tuto - mise en place d'une application web, consommant un service pour réaliser des opérations CRUD sur un modèle de domaines composé de quelques entités utilisateurs