Т.е грубо говоря, делать так:
class A {}
class B {
protected $a;
public function __construct(A $a) {
$this->a = $a;
}
}А не так:
class A {}
class B {
protected $a;
public function __construct() {
$this->a = new A();
}
}