From 60e6bbcc135fa21655733ff41912e5d73ba8d264 Mon Sep 17 00:00:00 2001 From: knut <> Date: Mon, 11 Jun 2007 16:02:28 +0000 Subject: fixed #646 --- framework/Caching/TAPCCache.php | 23 ++++++++++++++++------- framework/Exceptions/messages.txt | 4 +++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/framework/Caching/TAPCCache.php b/framework/Caching/TAPCCache.php index 969de4a4..253507b6 100644 --- a/framework/Caching/TAPCCache.php +++ b/framework/Caching/TAPCCache.php @@ -40,6 +40,7 @@ * * * @author Alban Hanry + * @author Knut Urdalen * @version $Id$ * @package System.Caching * @since 3.0b @@ -54,12 +55,16 @@ class TAPCCache extends TCache */ public function init($config) { - if(substr(php_sapi_name(), 0, 3) !== 'cli') //APC is usually disabled in CLI mode. - { - if(!extension_loaded('apc')) - throw new TConfigurationException('apccache_extension_required'); - parent::init($config); - } + if(!extension_loaded('apc')) + throw new TConfigurationException('apccache_extension_required'); + + if(ini_get('apc.enabled') == false) + throw new TConfigurationException('apccache_extension_not_enabled'); + + if(substr(php_sapi_name(), 0, 3) === 'cli' and ini_get('apc.enable_cli') == false) + throw new TConfigurationException('apccache_extension_not_enabled_cli'); + + parent::init($config); } /** @@ -98,7 +103,11 @@ class TAPCCache extends TCache */ protected function addValue($key,$value,$expire) { - throw new TNotSupportedException('apccache_add_unsupported'); + if(function_exists('apc_add')) { + return apc_add($key,$value,$expire); + } else { + throw new TNotSupportedException('apccache_add_unsupported'); + } } /** diff --git a/framework/Exceptions/messages.txt b/framework/Exceptions/messages.txt index 528b5c62..803271e5 100644 --- a/framework/Exceptions/messages.txt +++ b/framework/Exceptions/messages.txt @@ -94,6 +94,8 @@ memcache_port_unchangeable = TMemCache.Port cannot be modified after the modu apccache_extension_required = TAPCCache requires APC PHP extension. apccache_add_unsupported = TAPCCache.add() is not supported. apccache_replace_unsupported = TAPCCache.replace() is not supported. +apccache_extension_not_enabled = TAPCCache need apc.enabled = 1 in php.ini in order to work. +apccache_extension_not_enabled_cli = TAPCCache need apc.enable_cli = 1 in php.ini in order to work with PHP from the command line. errorhandler_errortemplatepath_invalid = TErrorHandler.ErrorTemplatePath '{0}' is invalid. Make sure it is in namespace form and points to a valid directory containing error template files. @@ -368,7 +370,7 @@ dbtransaction_transaction_inactive = TDbTransaction is inactive. dbcommandbuilder_value_must_not_be_null = Property {0} must not be null as defined by column '{2}' in table '{1}'. -dbcommon_invalid_table_name = Database table '{0}' not found. Error Msg: {1}. +dbcommon_invalid_table_name = Database table '{0}' not found. Error message: {1}. dbcommon_invalid_identifier_name = Invalid database identifier name '{0}', see {1} for details. dbtableinfo_invalid_column_name = Invalid column name '{0}' for database table '{1}'. dbmetadata_invalid_table_view = Invalid table/view name '{0}', or that table/view '{0}' contains no accessible column/field definitions. -- cgit v1.2.3