加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework2 – 在Zend Framework 2中注册自定义转换器加载

发布时间:2020-12-13 17:13:58 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试注册自定义数据库转换器加载器. 为此,我的灵感来自: Feeding Zend Translator 我在(module.config.php)中有以下facotry代码: 'service_manager' = array( 'factories' = array( 'translator' = function($sm){ $translator = new V1ServiceDa
我正在尝试注册自定义数据库转换器加载器.

为此,我的灵感来自:
Feeding Zend Translator

我在(module.config.php)中有以下facotry代码:

'service_manager' => array(
    'factories' => array(
        'translator' => function($sm){
            $translator = new V1ServiceDatabaseTranslationService();
            return $translator->createService($sm);
        },),

DatabaseTranslationService看起来像这样:

$config = $serviceLocator->get('Config');
    $trConfig = isset($config['translator']) ? $config['translator'] : array();
    $translator = new ZendI18nTranslatorTranslator();
    $translator->getPluginManager()->setInvokableClass('database','FooI18nTranslatorLoaderDatabaseTranslator',true);
    $translator->addTranslationFile('database','en_EN');

    return $translator;

但似乎没有使用“setInvokableClass”:
我收到了这个错误:

ZendServiceManagerServiceManager::get was unable to fetch or create an instance for database

有没有人知道如何正确注册翻译

解决方法

经过两天的搜索,我找到了解决方案.

我不知道这是否是一个很好的解决方案,但它对我有用.

替换线:

$translator->getPluginManager()->setInvokableClass('database',true);

$viewHelper = $serviceLocator->get('viewHelperManager');
$viewHelper->setInvokableClass('database',true);

我希望这个解决方案能帮到你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读