Zend framework2 ZF2共享创建的对象

Zend framework2 ZF2共享创建的对象,zend-framework2,Zend Framework2,我需要知道我如何才能分享我的应用程序类 实际上,我在module.php中创建了一个Foo对象,设置了一些属性,并希望在另一个类中使用这个创建的Foo类。创建Foo对象时,我的Bar对象不存在 我想我必须使用ServiceManager,但我不知道如何使用它。您可以在Module.php中的工厂中创建对象,如下所示: public function getServiceConfig() { return array( 'factories' => array(

我需要知道我如何才能分享我的应用程序类

实际上,我在module.php中创建了一个Foo对象,设置了一些属性,并希望在另一个类中使用这个创建的Foo类。创建Foo对象时,我的Bar对象不存在


我想我必须使用ServiceManager,但我不知道如何使用它。

您可以在Module.php中的工厂中创建对象,如下所示:

public function getServiceConfig()
{
    return array(
        'factories' => array(
            'My\Foo' =>  function($sm) {
                $foo = new \My\Foo();
                $foo->setAtt('value');
                return $foo;
            },
        ),
    );
}
$this->getServiceLocator()->get('My\Foo')
然后从服务管理器获取,例如从控制器获取,如下所示:

public function getServiceConfig()
{
    return array(
        'factories' => array(
            'My\Foo' =>  function($sm) {
                $foo = new \My\Foo();
                $foo->setAtt('value');
                return $foo;
            },
        ),
    );
}
$this->getServiceLocator()->get('My\Foo')

好的,非常好的解决方案。如果我通过module.php中的ServiceLocator获取对象,并设置值$foo->setAtt(“hello”)。如果想在我的Bar对象中获取该值,可以使用$this->getServiceLocator()->get()->getAtt()。我希望能够访问在另一个类中设置的值。