【发布时间】:2015-02-19 16:37:10
【问题描述】:
Zend Framework 2 提供了使用自定义类而不是框架提供的invokables 的可能性。例如。 ViewHelper类:
namespace Application;
...
class Module {
public function onBootstrap(MvcEvent $mvcEvent) {
$application = $mvcEvent->getApplication();
$serviceManager = $application->getServiceManager();
$viewHelperManager = $serviceManager->get('ViewHelperManager');
$viewHelperManager->setInvokableClass('headmeta', 'MyNamespace\View\Helper\HeadMeta');
}
...
public function getAutoloaderConfig() {
return array(
...
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
'MyNamespace' => __DIR__ . '/../../vendor/MyNamespace/library/MyNamespace',
),
),
);
}
}
所以,所有invocables(尤其是ViewHelpers)都可以被替换。还有什么?是否有一个类类型列表,可以像invokables(使用ServiceManager / EventManager)那样用自定义类替换?
【问题讨论】:
标签: php zend-framework2 service-locator servicemanager