. * * PHP version 5.1.6+ * * @category Security * @package PHPIDS * @author Mario Heiderich * @author Christian Matthies * @author Lars Strojny * @license http://www.gnu.org/licenses/lgpl.html LGPL * @link http://php-ids.org/ */ namespace IDS\Caching; /** * Caching factory * * This class is used as a factory to load the correct concrete caching * implementation. * * @category Security * @package PHPIDS * @author Christian Matthies * @author Mario Heiderich * @author Lars Strojny * @copyright 2007-2009 The PHPIDS Group * @license http://www.gnu.org/licenses/lgpl.html LGPL * @link http://php-ids.org/ * @since Version 0.4 */ class CacheFactory { /** * Factory method * * @param object $init the IDS_Init object * @param string $type the caching type * * @return object the caching facility */ public static function factory($init, $type) { $object = false; $wrapper = preg_replace( '/\W+/m', null, ucfirst($init->config['Caching']['caching']) ); $class = '\\IDS\\Caching\\' . $wrapper . 'Cache'; $path = dirname(__FILE__) . DIRECTORY_SEPARATOR . $wrapper . 'Cache.php'; if (file_exists($path)) { include_once $path; if (class_exists($class)) { $object = call_user_func( array('' . $class, 'getInstance'), $type, $init ); } } return $object; } }