<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
namespace Zend\Db\TableGateway\Feature;
use Zend\Db\Adapter\Adapter;
use Zend\Db\TableGateway\Exception;
class GlobalAdapterFeature extends AbstractFeature
{
/**
* @var Adapter[]
*/
protected static $staticAdapters = array();
/**
* Set static adapter
*
* @param Adapter $adapter
*/
public static function setStaticAdapter(Adapter $adapter)
{
$class = get_called_class();
static::$staticAdapters[$class] = $adapter;
if ($class === __CLASS__) {
static::$staticAdapters[__CLASS__] = $adapter;
}
}
/**
* Get static adapter
*
* @throws Exception\RuntimeException
* @return Adapter
*/
public static function getStaticAdapter()
{
$class = get_called_class();
// class specific adapter
if (isset(static::$staticAdapters[$class])) {
return static::$staticAdapters[$class];
}
// default adapter
if (isset(static::$staticAdapters[__CLASS__])) {
return static::$staticAdapters[__CLASS__];
}
throw new Exception\RuntimeException('No database adapter was found in the static registry.');
}
/**
* after initialization, retrieve the original adapter as "master"
*/
public function preInitialize()
{
$this->tableGateway->adapter = self::getStaticAdapter();
}
}
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
|
|