SitePoint PHP Blog: Achieving Modular Architecture with Forwarding Decorators
The SitePoint PHP blog has a tutorial posted from author Eugene Dementjev covering the use of "forwarding decorators" to create a more modular architecture for your application.
As your web application becomes larger, you certainly start to think more about designing a flexible, modular architecture which is meant to allow for a high amount of extensibility. There are lots of ways to implement such architecture, and all of them circle around the fundamental principles: separation of concerns, self-sufficiency, composability of the parts of an app.
There is one approach which is rarely seen in PHP software but can be effectively implemented — it involves using native inheritance to provide manageable patching of the software code; we call it the Forwarding Decorator.
The post starts out by defining the modular architecture and some of the basic concepts involved (including a flow graph or two). Then comes the examples how as basic version of the system could be used, multiple modules modifying a single class and hooks/patching the code.