/** * @param array|\Zend\Db\Adapter\Driver\DriverInterface $config * @throws UnsupportedDriverException * @return \Zend\Db\Adapter\Adapter */ public static function factory($config) { $platform = new SphinxQL(); $adapter = new ZendDBAdapter($config, $platform); $driver = $adapter->getDriver(); // Check driver if ($driver instanceof ZendPdoDriver && $driver->getDatabasePlatformName(ZendPdoDriver::NAME_FORMAT_CAMELCASE) == 'Mysql') { $driver->registerStatementPrototype(new PdoStatement()); } elseif (!$driver instanceof ZendMysqliDriver) { $class = get_class($driver); throw new UnsupportedDriverException($class . ' not supported. Use Zend\\Db\\Adapter\\Driver\\Pdo\\Pdo or Zend\\Db\\Adapter\\Driver\\Mysqli\\Mysqli'); } $platform->setDriver($adapter->getDriver()); return $adapter; }
/** * Create a DB adapter * * @param ServiceLocatorInterface $services * @param string $name * @param string $requestedName * @throws Exception\UnsupportedDriverException * @return \Zend\Db\Adapter\Adapter */ public function createServiceWithName(ServiceLocatorInterface $services, $name, $requestedName) { $config = $this->getConfig($services); $platform = new SphinxQL(); $adapter = new ZendDBAdapter($config[$requestedName], $platform); $driver = $adapter->getDriver(); // Check driver if ($driver instanceof ZendPdoDriver && $driver->getDatabasePlatformName(ZendPdoDriver::NAME_FORMAT_CAMELCASE) == 'Mysql') { $driver->registerStatementPrototype(new PdoStatement()); } elseif (!$driver instanceof ZendMysqliDriver) { $class = get_class($driver); throw new UnsupportedDriverException($class . ' not supported. Use Zend\\Db\\Adapter\\Driver\\Pdo\\Pdo or Zend\\Db\\Adapter\\Driver\\Mysqli\\Mysqli'); } $platform->setDriver($adapter->getDriver()); return $adapter; }