mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-14 12:44:06 +02:00
[task/acm-refactor] Refactor the ACM classes to have a common interface.
They are now refered to as cache drivers rather than ACM classes. The additional utility functions from the original cache class have been moved to the cache_service. The class loader is now instantiated without a cache instance and passed one as soon as it is constructed to allow autoloading the cache classes. PHPBB3-9983
This commit is contained in:
52
phpBB/includes/cache/factory.php
vendored
Normal file
52
phpBB/includes/cache/factory.php
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package acm
|
||||
* @version $Id$
|
||||
* @copyright (c) 2010 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
if (!defined('IN_PHPBB'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @package acm
|
||||
*/
|
||||
class phpbb_cache_factory
|
||||
{
|
||||
private $acm_type;
|
||||
|
||||
public function __construct($acm_type)
|
||||
{
|
||||
$this->acm_type = $acm_type;
|
||||
}
|
||||
|
||||
public function get_acm()
|
||||
{
|
||||
$class_name = 'phpbb_cache_driver_' . $this->acm_type;
|
||||
return new $class_name();
|
||||
}
|
||||
|
||||
public function get_service()
|
||||
{
|
||||
$acm = $this->get_acm();
|
||||
$service = new phpbb_cache_service($acm);
|
||||
return $service;
|
||||
}
|
||||
|
||||
/**
|
||||
* for convenience to allow:
|
||||
* $cache = phpbb_cache_factory::create('file')->get_service();
|
||||
*/
|
||||
public static function create($acm_type)
|
||||
{
|
||||
return new self($acm_type);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user