On the Zend Developer Zone there's a recent post from Steven Lloyd Watkin giving you a quick start to a technique becoming more popular in the PHP development community - dependency injection.

Dependency injection is a technique that allows for loosely coupled objects within a software application. Generally if an object requires access to the functionality of another it would be instantiated internally leading to tightly coupled systems. By implementing dependency injection we inject the required objects ready for use (sometimes also referred to inversion of control - IOC).

He illustrates with an example showing the injection of DecisionParameters into a DecisionMaker object (rather than just passing the parameters in manually). He looks at frameworks and how it's handled there, specifically with the Symfony DI container. He includes example code of how to use it, configure it, pull information back out and, of course, how it can help in unit testing your code.