protected function buildHydrator($product, $direction) { $this->assertOptionsValid(); $config = $this->options->getConfig(); $class = $this->options->getClass(); $hydrator = new ClassMethods(); if (!isset($config[$this->options->getClass()][$product])) { return $hydrator; } $tmp = new Config(array()); if (isset($config[$class]['*'])) { $tmp = new Config($config[$class]['*']); } if (isset($config[$class][$product])) { $productConfig = new Config($config[$class][$product]); $tmp = $productConfig->merge($tmp); } $config = $tmp['shared']; if (isset($tmp[$direction])) { $config->merge($tmp[$direction]); } $config = $config->toArray(); if (!empty($config['map'])) { $hydrator->setNamingStrategy(new ArrayMapNamingStrategy($config['map'])); } if (!empty($config['strategy'])) { foreach ($config['strategy'] as $name => $strategyCallback) { $hydrator->addStrategy($name, $strategyCallback()); } } if (!empty($config['options'])) { $this->options->setFromArray($config['options']); } return $hydrator; }
public function createService(ServiceLocatorInterface $serviceLocator) { $dbAdapter = $serviceLocator->get('Zend\\Db\\Adapter\\Adapter'); $hydrator = new ClassMethods(); $names = array(DbViewSites::SITEID => 'id'); $hydrator->setNamingStrategy(new MapNamingStrategy($names)); $prototype = $serviceLocator->get('SitePrototype'); return new SiteDbSqlMapper($dbAdapter, $hydrator, $prototype, DbViewSites::TABLE, DbViewSites::SITEID); }
public function createService(ServiceLocatorInterface $serviceLocator) { $dbAdapter = $serviceLocator->get('Zend\\Db\\Adapter\\Adapter'); $hydrator = new ClassMethods(); $names = new \Zend\Stdlib\Hydrator\NamingStrategy\MapNamingStrategy(array(DbViewAuthors::ROLEID => 'role')); $hydrator->setNamingStrategy($names); $prototype = $serviceLocator->get('AuthorshipPrototype'); return new AuthorshipDbSqlMapper($dbAdapter, $hydrator, $prototype, DbViewAuthors::TABLE, ''); }
public function createService(ServiceLocatorInterface $serviceLocator) { $dbAdapter = $serviceLocator->get('Zend\\Db\\Adapter\\Adapter'); $hydrator = new ClassMethods(); $namingStrat = new \Zend\Stdlib\Hydrator\NamingStrategy\MapNamingStrategy(array(DbViewPages::PAGEID => 'id', DbViewPages::PAGENAME => 'name', DbViewPages::REVISIONS => 'revisionCount', DbViewPages::STATUSID => 'status', DbViewPages::STATUS => '', DbViewPages::KINDID => 'kind', DbViewPages::KIND => '')); $hydrator->setNamingStrategy($namingStrat); $hydrator->addStrategy(DbViewPages::CREATIONDATE, new \Zend\Stdlib\Hydrator\Strategy\DateTimeFormatterStrategy('Y-m-d H:i:s')); $prototype = $serviceLocator->get('PagePrototype'); return new PageDbSqlMapper($dbAdapter, $hydrator, $prototype, DbViewPages::TABLE, DbViewPages::PAGEID); }
public function createService(ServiceLocatorInterface $serviceLocator) { $dbAdapter = $serviceLocator->get('Zend\\Db\\Adapter\\Adapter'); $hydrator = new ClassMethods(); $names = array(DbViewRevisions::REVISIONID => 'id', DbViewRevisions::REVISIONINDEX => 'index'); $hydrator->setNamingStrategy(new MapNamingStrategy($names)); $hydrator->addStrategy(DbViewRevisions::DATETIME, new \Zend\Stdlib\Hydrator\Strategy\DateTimeFormatterStrategy('Y-m-d H:i:s')); $prototype = $serviceLocator->get('RevisionPrototype'); return new RevisionDbSqlMapper($dbAdapter, $hydrator, $prototype, DbViewRevisions::TABLE, DbViewRevisions::REVISIONID); }