Примеры в руководстве не работают.
class B { protected $a = null; public function setA($a) { $this->a = $a; } } ... use Zend\Di\Di; use Zend\Di\Definition; use Zend\Di\Definition\Builder; use Zend\Di\DefinitionList; ... $builder = new Definition\BuilderDefinition; $builder->addClass(($class = new Builder\PhpClass)); $class->setName('Application\Service\B'); $class->addInjectionMethod(($im = new Builder\InjectionMethod)); $im->setName('setA'); $im->addParameter('a', 'Application\Service\A'); $dList = new DefinitionList(array( $builder, new Definition\RuntimeDefinition )); $di = new Di; $di->setDefinitionList($dList); $options = array( 'definition' => array( 'class' => array( 'Application\Service\B' => array( 'setA' => array( 'required' => true ) ) ) ) ); $config = new \Zend\Di\Config($options); $di->configure($config); $c = $di->get('Application\Service\C', array( 'username' => 'MyUsernameValue', 'password' => 'MyHardToGuessPassword%$#', ));
object(Application\Service\C)[251] protected 'b' => object(Application\Service\B)[244] protected 'a' => object(Application\Service\A)[248] protected 'username' => string 'MyUsernameValue' (length=15) protected 'password' => string 'MyHardToGuessPassword%$#' (length=24)