Ivo Jansch today gives an excellent look on proxies, decorators and delegates; three popular desigh patterns.
In PHP5, you can define methods in an object for intercepting calls to methods of an object and for intercepting access to object member variables. These methods (__get, __set and __call) enable the implementation of very generic proxies, decorators and delegators.
This is a great introduction to these three patterns and how to implement them in PHP