Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Cache
- {
- public static function create($adapter, array $params)
- {
- $class_name = 'Cache_Adapter_' . $adapter;
- return new $class_name($params);
- }
- }
- abstract class Cache_Adapter
- {
- public function __construct(array $params)
- {
- }
- }
- class Cache_Adapter_File extends Cache_Adapter
- {
- // ...
- }
- // config.php
- return array(
- 'cache' => array(
- 'adapter' => 'file',
- 'params' => array(
- 'path' => '/path',
- ),
- ),
- );
- // bootstrap.php
- $dic->cache = Cache::create($config['cache']['adapter'], $config['cache']['params']);
- // config.php
- return array(
- 'db1' => array(
- 'adapter' => 'mysql',
- 'params' => array(
- 'user' => 'root',
- 'connect_timeout' => 5,
- ),
- ),
- 'db2' => array(
- 'adapter' => 'sqlsrv',
- 'params' => array(
- 'db' => 'foo',
- ),
- ),
- );
- // bootstrap.php
- $dic->db1 = Site:Db::create($config['db1']['adapter'], $config['db1']['params']);
- $dic->db2 = Site:Db::create($config['db2']['adapter'], $config['db2']['params']);
- class Cache_Adapter_Db extends Cache_Adapter
- {
- // Instead of abstract Cache_Adapter::__construct(array $params)
- // something like this is needed:
- // public function __construct(array $params, Db_Adapter $db)
- public function __construct(array $params)
- {
- }
- }
- class Cache_Adapter_Db extends Cache_Adapter
- {
- public function __construct(array $params, Db_Adapter $db)
- {
- parent::__construct($params);
- }
- }
- class Cache
- {
- public static function create($adapter, array $params, $optparams = null )
- {
- $class_name = 'Cache_Adapter_' . $adapter;
- return new $class_name($params, $optparams);
- }
- }
- // config.php
- return array(
- 'db1' => array(
- 'adapter' => 'mysql',
- 'params' => array(
- 'user' => 'root',
- 'connect_timeout' => 5,
- ),
- ),
- 'db2' => array(
- 'adapter' => 'sqlsrv',
- 'params' => array(
- 'db' => 'foo',
- ),
- 'options' => 'extraoption'
- ),
- );
- $dic->db2 = Site:Db::create(
- $config['db2']['adapter'],
- $config['db2']['params'],
- $config['db2']['options']
- );
Add Comment
Please, Sign In to add comment