[+] Classes: Add Xcache support
This commit is contained in:
@@ -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>
|
||||
|
||||
Vendored
+2
@@ -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',
|
||||
|
||||
Vendored
+90
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
class CacheXcache extends CacheXcacheCore
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user