[+] Classes: Add Xcache support

This commit is contained in:
rMalie
2011-10-11 14:28:21 +00:00
parent 0095fcfa5c
commit b8ffadf7b3
5 changed files with 110 additions and 5 deletions
+6
View File
@@ -46,6 +46,8 @@ class AdminPerformance extends AdminTab
$this->_errors[] = Tools::displayError('To use Memcached, you must install the Memcache PECL extension on your server.').' <a href="http://www.php.net/manual/en/memcache.installation.php">http://www.php.net/manual/en/memcache.installation.php</a>'; $this->_errors[] = Tools::displayError('To use Memcached, you must install the Memcache PECL extension on your server.').' <a href="http://www.php.net/manual/en/memcache.installation.php">http://www.php.net/manual/en/memcache.installation.php</a>';
else if ($cache_active && $caching_system == 'CacheApc' && !extension_loaded('apc')) else if ($cache_active && $caching_system == 'CacheApc' && !extension_loaded('apc'))
$this->_errors[] = Tools::displayError('To use APC cache, you must install the APC PECL extension on your server.').' <a href="http://fr.php.net/manual/fr/apc.installation.php">http://fr.php.net/manual/fr/apc.installation.php</a>'; $this->_errors[] = Tools::displayError('To use APC cache, you must install the APC PECL extension on your server.').' <a href="http://fr.php.net/manual/fr/apc.installation.php">http://fr.php.net/manual/fr/apc.installation.php</a>';
else if ($cache_active && $caching_system == 'CacheXcache' && !extension_loaded('xcache'))
$this->_errors[] = Tools::displayError('To use Xcache, you must install the Xcache extension on your server.').' <a href="http://xcache.lighttpd.net">http://xcache.lighttpd.net</a>';
else if ($cache_active && $caching_system == 'CacheFs' && !is_writable(_PS_CACHEFS_DIRECTORY_)) else if ($cache_active && $caching_system == 'CacheFs' && !is_writable(_PS_CACHEFS_DIRECTORY_))
$this->_errors[] = Tools::displayError('To use CacheFS the directory').' '.realpath(_PS_CACHEFS_DIRECTORY_).' '.Tools::displayError('must be writable'); $this->_errors[] = Tools::displayError('To use CacheFS the directory').' '.realpath(_PS_CACHEFS_DIRECTORY_).' '.Tools::displayError('must be writable');
@@ -224,6 +226,9 @@ class AdminPerformance extends AdminTab
$warnings[] = $this->l('To use Memcached, you must install the Memcache PECL extension on your server.').' <a href="http://www.php.net/manual/en/memcache.installation.php">http://www.php.net/manual/en/memcache.installation.php</a>'; $warnings[] = $this->l('To use Memcached, you must install the Memcache PECL extension on your server.').' <a href="http://www.php.net/manual/en/memcache.installation.php">http://www.php.net/manual/en/memcache.installation.php</a>';
if (!extension_loaded('apc')) if (!extension_loaded('apc'))
$warnings[] = $this->l('To use APC, you must install the APC PECL extension on your server.').' <a href="http://fr.php.net/manual/fr/apc.installation.php">http://fr.php.net/manual/fr/apc.installation.php</a>'; $warnings[] = $this->l('To use APC, you must install the APC PECL extension on your server.').' <a href="http://fr.php.net/manual/fr/apc.installation.php">http://fr.php.net/manual/fr/apc.installation.php</a>';
if (!extension_loaded('xcache'))
$warnings[] = $this->l('To use Xcache, you must install the Xcache extension on your server.').' <a href="http://xcache.lighttpd.net">http://xcache.lighttpd.net</a>';
if (!is_writable(_PS_CACHEFS_DIRECTORY_)) if (!is_writable(_PS_CACHEFS_DIRECTORY_))
$warnings[] = $this->l('To use CacheFS the directory').' '.realpath(_PS_CACHEFS_DIRECTORY_).' '.$this->l('must be writable'); $warnings[] = $this->l('To use CacheFS the directory').' '.realpath(_PS_CACHEFS_DIRECTORY_).' '.$this->l('must be writable');
@@ -447,6 +452,7 @@ class AdminPerformance extends AdminTab
<select name="caching_system" id="caching_system"> <select name="caching_system" id="caching_system">
<option value="CacheMemcache" '.(_PS_CACHING_SYSTEM_ == 'CacheMemcache' ? 'selected="selected"' : '' ).'>'.$this->l('Memcached').'</option> <option value="CacheMemcache" '.(_PS_CACHING_SYSTEM_ == 'CacheMemcache' ? 'selected="selected"' : '' ).'>'.$this->l('Memcached').'</option>
<option value="CacheApc" '.(_PS_CACHING_SYSTEM_ == 'CacheApc' ? 'selected="selected"' : '' ).'>'.$this->l('APC').'</option> <option value="CacheApc" '.(_PS_CACHING_SYSTEM_ == 'CacheApc' ? 'selected="selected"' : '' ).'>'.$this->l('APC').'</option>
<option value="CacheXcache" '.(_PS_CACHING_SYSTEM_ == 'CacheXcache' ? 'selected="selected"' : '' ).'>'.$this->l('Xcache').'</option>
<option value="CacheFs" '.(_PS_CACHING_SYSTEM_ == 'CacheFs' ? 'selected="selected"' : '' ).'>'.$this->l('File System').'</option> <option value="CacheFs" '.(_PS_CACHING_SYSTEM_ == 'CacheFs' ? 'selected="selected"' : '' ).'>'.$this->l('File System').'</option>
</select> </select>
</div> </div>
+2
View File
@@ -240,6 +240,8 @@
'CacheFs' => 'override/classes/cache/CacheFs.php', 'CacheFs' => 'override/classes/cache/CacheFs.php',
'CacheMemcacheCore' => 'classes/cache/CacheMemcache.php', 'CacheMemcacheCore' => 'classes/cache/CacheMemcache.php',
'CacheMemcache' => 'override/classes/cache/CacheMemcache.php', 'CacheMemcache' => 'override/classes/cache/CacheMemcache.php',
'CacheXcacheCore' => 'classes/cache/CacheXcache.php',
'CacheXcache' => 'override/classes/cache/CacheXcache.php',
'DbCore' => 'classes/db/Db.php', 'DbCore' => 'classes/db/Db.php',
'Db' => 'override/classes/db/Db.php', 'Db' => 'override/classes/db/Db.php',
'DbMySQLiCore' => 'classes/db/DbMySQLi.php', 'DbMySQLiCore' => 'classes/db/DbMySQLi.php',
+90
View File
@@ -0,0 +1,90 @@
<?php
/*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision$
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
/**
* This class require Xcache extension
*
* @since 1.5.0
*/
class CacheXcacheCore extends Cache
{
public function __construct()
{
$this->keys = xcache_get(self::KEYS_NAME);
if (!is_array($this->keys))
$this->keys = array();
}
/**
* @see Cache::_set()
*/
protected function _set($key, $value, $ttl = 0)
{
return xcache_set($key, $value, $ttl);
}
/**
* @see Cache::_get()
*/
protected function _get($key)
{
return xcache_isset($key) ? xcache_get($key) : false;
}
/**
* @see Cache::_exists()
*/
protected function _exists($key)
{
return xcache_isset($key);
}
/**
* @see Cache::_delete()
*/
protected function _delete($key)
{
return xcache_unset($key);
}
/**
* @see Cache::_writeKeys()
*/
protected function _writeKeys()
{
xcache_set(self::KEYS_NAME, $this->keys);
}
/**
* @see Cache::flush()
*/
public function flush()
{
$this->delete('*');
return true;
}
}
+7
View File
@@ -0,0 +1,7 @@
<?php
class CacheXcache extends CacheXcacheCore
{
}