[+] 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>';
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>';
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_))
$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>';
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>';
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_))
$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">
<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="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>
</select>
</div>
+2
View File
@@ -240,6 +240,8 @@
'CacheFs' => 'override/classes/cache/CacheFs.php',
'CacheMemcacheCore' => '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',
'Db' => 'override/classes/db/Db.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;
}
}
+5 -5
View File
@@ -112,7 +112,7 @@ class BlockCategories extends Module
<label class="t" for="dhtml_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label>
<p class="clear">'.$this->l('Activate dynamic (animated) mode for sublevels').'</p>
</div>
<label>'.$this->l('Footer columns number').'</label>
<label>'.$this->l('Footer columns number').'</label>
<div class="margin-form">
<input type="text" name="nbrColumns" value="'.Configuration::get('BLOCK_CATEG_NBR_COLUMN_FOOTER').'" />
<p class="clear">'.$this->l('Set the number of footer columns').'</p>
@@ -167,7 +167,7 @@ class BlockCategories extends Module
GROUP BY id_category
ORDER BY `level_depth` ASC, c.`position` ASC')
)
return;
$resultParents = array();
@@ -215,7 +215,7 @@ class BlockCategories extends Module
public function hookFooter($params)
{
$id_current_shop = $this->context->shop->getID();
$id_customer = (int)($params['cookie']->id_customer);
// Get all groups for this customer and concatenate them as a string: "1,2,3..."
$groups = $id_customer ? implode(', ', Customer::getGroupsStatic($id_customer)) : _PS_DEFAULT_CUSTOMER_GROUP_;
@@ -256,7 +256,7 @@ class BlockCategories extends Module
$widthColumn= floor(100/$nbrColumns);
$this->context->smarty->assign('numberColumn', $numberColumn);
$this->context->smarty->assign('widthColumn', $widthColumn);
$blockCategTree = $this->getTree($resultParents, $resultIds, Configuration::get('BLOCK_CATEG_MAX_DEPTH'));
unset($resultParents, $resultIds);
@@ -322,7 +322,7 @@ class BlockCategories extends Module
{
$this->_clearBlockcategoriesCache();
}
public function hookAfterSaveAdminMeta($params)
{
$this->_clearBlockcategoriesCache();
+7
View File
@@ -0,0 +1,7 @@
<?php
class CacheXcache extends CacheXcacheCore
{
}