В 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
, Это уже исправлено, но исправление не было объединено с master
филиал еще. В любом случае, я хочу временно перейти на свой DbSelect
учебный класс. Но DbSelect
не является invocable
, Как использовать пользовательский класс вместо стандартного каркасного класса, например, Zend\Paginator\Adapter\DbSelect
?
Пагинатор имеет свой менеджер плагинов адаптеров. Так что вы можете отправить ему свою собственную фабрику dbselect.
Других решений пока нет …