【问题标题】:Which parts of the Zend Framework 2 can be easily replaced by custom classes?Zend Framework 2 的哪些部分可以很容易地被自定义类替换?
【发布时间】: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


    【解决方案1】:

    我想最终“在”服务/插件管理器中的所有内容都可以替换。您可以检查诸如controllerviewform element 插件管理器类之类的地方。您还可以尝试转储整个服务管理器对象并查看它拥有哪些密钥并尝试在您的 Module 类中覆盖它们(使用与原始服务类相同的服务类,例如用另一个工厂覆盖工厂创建的服务)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 2013-07-18
      • 2013-06-02
      • 1970-01-01
      • 2015-09-15
      • 2018-08-14
      相关资源
      最近更新 更多