Comments 6
По данному запросу оригинальная статья в выдаче поисковика на первом месте. В чём смысл вашей статьи? =/
Да, это всего лишь перевод оригинальной статьи.
Поиск в интернете выдавал мне результаты, основанные на использовании метода getServiceLocator(). Наиболее интересная статья была samsonasik.wordpress.com/2012/08/28/set-default-db-adapter-in-zend-framework-2/, но такой подход не совсем подходил для меня при использовании глобальной модели AbstractTableGateway.
Поэтому я решил поделиться этой информацией. Заодно и перевел статью на наш могучий язык. Посчитал, что будет полезно =/
Поиск в интернете выдавал мне результаты, основанные на использовании метода getServiceLocator(). Наиболее интересная статья была samsonasik.wordpress.com/2012/08/28/set-default-db-adapter-in-zend-framework-2/, но такой подход не совсем подходил для меня при использовании глобальной модели AbstractTableGateway.
Поэтому я решил поделиться этой информацией. Заодно и перевел статью на наш могучий язык. Посчитал, что будет полезно =/
Хотя данную информацию можно почерпать из оффициального мануала (но к нему пришел через статью топика)
framework.zend.com/manual/2.1/en/modules/zend.db.table-gateway.html#tablegateway-features
framework.zend.com/manual/2.1/en/modules/zend.db.table-gateway.html#tablegateway-features
еще можно написать абстрактную фабрику, которая будет порождать шлюзы на основе одного адаптера
пример http://samsonasik.wordpress.com/2013/01/15/zend-framework-2-cheat-sheet-zenddb
пример http://samsonasik.wordpress.com/2013/01/15/zend-framework-2-cheat-sheet-zenddb
Поясните пожалуйста минусы использования сервислокатора для описанной задачи…
Настолько я понял из статьи samsonasik.wordpress.com/2012/08/28/set-default-db-adapter-in-zend-framework-2/,
то использовать конструкцию вида
'ModuleName\Model\TableA' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$table = new \ModuleName\Model\TableA($dbAdapter);
return $table;
придется прописывать для каждой таблицы в module.config.php
А в статье пример работает по умолчанию для всех таблиц, наследующих AbstractTableGateway
то использовать конструкцию вида
'ModuleName\Model\TableA' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$table = new \ModuleName\Model\TableA($dbAdapter);
return $table;
придется прописывать для каждой таблицы в module.config.php
А в статье пример работает по умолчанию для всех таблиц, наследующих AbstractTableGateway
Sign up to leave a comment.
ZF2: Получить db adapter без использования service locator