【问题标题】:How to replace a ZF2 class with a custom one in Zend Framework?如何在 Zend Framework 中用自定义类替换 ZF2 类?
【发布时间】:2015-02-19 15:49:04
【问题描述】:

在 Zend Framework 2 中,使用自定义类而不是框架中的可调用类非常容易。例如。 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',
                ),
            ),
        );
    }

}

现在我遇到了Zend\Paginator\Adapter\DbSelect 中的bug 的问题。它已被修复,但尚未合并到 master 分支。无论如何,我想暂时切换到我自己的DbSelect 班级。但是DbSelect 不是invocable如何使用自定义类而不是默认框架类,例如Zend\Paginator\Adapter\DbSelect?

【问题讨论】:

  • 你提到的问题已经修复并合并到#6817
  • 感谢您的评论!嗯,问题不仅是关于这个具体问题。但无论如何——我刚刚制作了一个composer update,它已经加载了当前的ZF2 版本2.3.5。我不知道为什么,但是有问题的地方的Zend\Paginator\Adapter\DbSelect 的代码仍然保持在修复之前的样子:90 行只包含一个return 方向(return $resultSet;),没有任何检查和转换为数组(请参阅修复 github.com/samsonasik/zf2/commit/…)。

标签: php zend-framework2 servicemanager


【解决方案1】:

Paginator 有自己的adapter plugin manager。所以你可以把你自己的 dbselect 工厂推给他。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多