1

当我阅读 ZF2 中的 Zend\MVC\Service\ServiceManagerConfig.php 时。我有问题。这是代码:

$serviceManager->addInitializer(function ($instance) use ($serviceManager) {
        if ($instance instanceof EventManagerAwareInterface
            && !$instance->getEventManager() instanceof EventManagerInterface
        ) {
            $instance->setEventManager($serviceManager->get('EventManager'));
        }
    });

我知道“addInitializer”方法中有一个闭包。但让我感到困惑的是参数“$instance”。这是一个参数,但真正的价值来自哪里?$instance 的 var_dump() 发现它是一个对象,即 "Zend\ModuleManager\Listener\ServiceListener" ;它从哪里来?

4

1 回答 1

2

当您这样做时,$sm->get('something');将使用定义的工厂创建对象,然后将其传递给初始化程序。$instance参数就是那个对象。

你可以在这里看到

于 2013-01-30T15:33:58.370 回答