カスタムデータベーストランスレータローダーを登録しようとしています。
そのために私は触発されました: ZendTranslatorに餌をやる
(module.config.php)に次のファコトリーコードがあります:
'service_manager' => array(
'factories' => array(
'translator' => function($sm){
$translator = new \V1\Service\DatabaseTranslationService();
return $translator->createService($sm);
},
),
),
DatabaseTranslationServiceは次のようになります。
$config = $serviceLocator->get('Config');
$trConfig = isset($config['translator']) ? $config['translator'] : array();
$translator = new \Zend\I18n\Translator\Translator();
$translator->getPluginManager()->setInvokableClass('database', '\Foo\I18n\Translator\Loader\DatabaseTranslator', true);
$translator->addTranslationFile('database', 'en_EN');
return $translator;
しかし、「setInvokableClass」が使用されていないようです。次のエラーが発生しました。
Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for database
翻訳者を正しく登録する方法を知っている人はいますか