Php Zend Framework 2的哪些部分可以被自定义类轻松替换?
Zend Framework 2提供了使用自定义类而不是框架附带的Php Zend Framework 2的哪些部分可以被自定义类轻松替换?,php,zend-framework2,service-locator,servicemanager,Php,Zend Framework2,Service Locator,Servicemanager,Zend Framework 2提供了使用自定义类而不是框架附带的invokables的可能性。例如,ViewHelper类: namespace Application; ... class Module { public function onBootstrap(MvcEvent $mvcEvent) { $application = $mvcEvent->getApplication(); $serviceManager = $appli
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',
),
),
);
}
}
因此,可以替换所有的
invocable
s(尤其是ViewHelper
s)。还有什么?是否有一个类类型列表,可以用自定义类替换,例如invokables
(使用ServiceManager
/EventManager
)?我想服务/插件管理器中的所有内容都可以替换。您可以检查诸如、或插件管理器类之类的位置。您还可以尝试转储整个service manager对象,查看它持有哪些密钥,并尝试在模块
类中覆盖它们(使用与原始类相同的服务类,例如,使用另一个工厂覆盖工厂创建的服务)