Bonjour,
je suis débutant dans le zend framework, j'aimerai développer un site multilingue qui charge les traductions dans une base de donnée.
Mais j'ai quelques erreurs qui me cause problème.
Voici l'erreur affichée:
Catchable fatal error: Argument 1 passed to Zend\I18n\Translator\Loader\TranslateDataBase::__construct() must be an instance of Zend\Db\Adapter\Adapter, none given, called in C:\wamp\www\Zend_CMS\vendor\zendframework\zendframework\library\Zend\ServiceManager\AbstractPluginManager.php on line 170 and defined in C:\wamp\www\Zend_CMS\vendor\zendframework\zendframework\library\Zend\I18n\Translator\Loader\TranslateDataBase.php on line 15
Mon fichier module.config.php dans Application:
Ma class TranslateDatabase
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 'translator' => array( 'locale' => 'fr_FR', 'translation_file_patterns' => array( array( 'type' => 'Zend\I18n\Translator\Loader\TranslateDataBase', 'base_dir' => __DIR__ . '/../language', 'pattern' => '%s.mo', ), ), ),
Ma classe module.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php namespace Zend\I18n\Translator\Loader; use Zend\Db\Adapter\Adapter; use Zend\Db\Sql\Sql; use Zend\I18n\Translator\Loader\RemoteLoaderInterface; use Zend\I18n\Translator\Plural\Rule as PluralRule; use Zend\I18n\Translator\TextDomain; use Zend\Db\TableGateway\AbstractTableGateway; class TranslateDataBase extends AbstractTableGateway { protected $dbAdapter; public function __construct(Adapter $dbAdapter) { $this->dbAdapter = $dbAdapter; } public function load($filename, $locale) { //recupere les données depuis la db et les renvois return $textDomain; } }
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function getServiceConfig() { return array( 'factories' => array( 'TranslateDataBase' => function($sm) { $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); return new TranslateDataBase($dbAdapter); }, ), ); }
Partager