ZF2 und die Delegator Factories
Kommentare

Es gibt Features in Frameworks, die man entweder nicht kennt oder nicht versteht. Eines dieser Features im Zend Framework 2 sind die Delegator Factories, an denen Marco Pivetta bereits letztes Jahr gearbeitet

Es gibt Features in Frameworks, die man entweder nicht kennt oder nicht versteht. Eines dieser Features im Zend Framework 2 sind die Delegator Factories, an denen Marco Pivetta bereits letztes Jahr gearbeitet hatte, und die seit Version 2.2 Teil des Frameworks sind. Jetzt schickt er sich an, geplagten Entwicklern Aufklärung zu verschaffen.

Denn interessant sind die Delegator Factories vor allem für all jene, die sich im ZendServiceManager mit der Situation konfrontiert sehen, Services von Third-Party-Modulen überschreiben zu müssen. Das führt meist zu viel Duplizierung im Code, was natürlich vor allem dann zum Problem wird, wenn man externe Abhängigkeiten hat.

Genau dafür hat Pivetta die Delegator Factories erschaffen; ein keineswegs neues Konzept, das zu allem Überfluss auch noch den falschen Namen trägt:

I initially designed these factories to solve a different problem, which is Lazy Services. In the context of lazy services and decorators, the instance returned by these factories is indeed a „delegate„, therefore I came up with the name „delegator factory“. Only later on I realized that these factories are actually much more powerful than what I originally designed them for, therefore the „delegator factory“ name became inadequate.

All jene, die sich also etwas genauer mit der Thematik beschäftigen möchten – oder überhaupt das erste mal davon hören – sollten sich Pivettas Blogpost Delegator Factories in Zend Framework 2 zu Gemüte führen.

Übrigens: Wir werden uns in einer der nächsten Ausgaben des PHP Magazins ebenfalls intensiv mit den Delegagtor Factories beschäftigen.

Aufmacherbild: Leader and team von Shutterstock / Urheberrecht: Zudy and Kysa

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -