SymfonyLive Berlin 2017 - Matthias Pigulla - Praktische Anwendung des Specification Pattern...
Aus Performancegründen ist es beim Einsatz von Doctrine oft notwendig, sich die einzelnen Use Cases der Anwendung näher anzuschauen und darauf optimiertes DQL zu schreiben. Das führt schnell zu großen Repository-Klassen. Oft enthalten sie für bestimmte Details auch duplizierten Code, und so ist schon bald nicht mehr klar, welche Methode eigentlich wofür genau gedacht war. Wenn sich dann noch die Anforderungen mit Auswirkung auf das DQL ändern, geht der Überblick komplett verloren und Business Rules werden nicht mehr konsistent angewendet. Einen möglichen Ausweg bietet das von Eric Evans und Martin Fowler beschriebene ""Specification Pattern"". Anhand von Beispielen aus Praxisprojekten möchte ich zeigen, wie wir durch die Einführung von Specifications den Wildwuchs in Repositories zurückschneiden konnten. Dabei gehe ich auch darauf ein, wie sich Unit Tests für die Specifications schreiben lassen und welche Strategien für das *Eager Loading* zur Verfügung stehen. Darüberhinaus ermöglichen Specifications strukturierte Suchabfragen in DQL auf Basis (komplexer) Formulare. In mandantenfähiger Software oder wiederverwendbaren Bundles helfen über den DI-Container eingesetzte Specifications dabei, das Kernmodell von kunden- und projektspezifischen Belangen freizuhalten. Erfahre mehr über Symfony: https://symfony.com/ Entdecke unsere Produkte und Services: https://sensiolabs.de/ Bleibe immer auf dem Laufenden! Facebook: https://www.facebook.com/sensiolabs.de/ Twitter: https://twitter.com/SensioLabsDE