From ca32aecc5472ac0a4ca518349ecbe39d7ce8f6e9 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Tue, 18 Mar 2014 17:28:57 -0700 Subject: [PATCH] Error handling - Replace calls to CRM_Core_Error::setCallback(...) with CRM_Core_TemporaryErrorScope::create(...) --- CRM/Core/Config.php | 6 +++--- CRM/Core/Smarty/plugins/function.crmAPI.php | 4 ++-- CRM/Core/Smarty/plugins/function.crmSetting.php | 4 ++-- CRM/Utils/REST.php | 10 +++++----- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CRM/Core/Config.php b/CRM/Core/Config.php index 88cc475cd5..155612acfc 100644 --- a/CRM/Core/Config.php +++ b/CRM/Core/Config.php @@ -188,8 +188,8 @@ class CRM_Core_Config extends CRM_Core_Config_Variables { static function &singleton($loadFromDB = TRUE, $force = FALSE) { if (self::$_singleton === NULL || $force) { // goto a simple error handler - $GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_CALLBACK; - $GLOBALS['_PEAR_default_error_options'] = array('CRM_Core_Error', 'simpleHandler'); + $GLOBALS['civicrm_default_error_scope'] = CRM_Core_TemporaryErrorScope::create(array('CRM_Core_Error', 'handle')); + $errorScope = CRM_Core_TemporaryErrorScope::create(array('CRM_Core_Error', 'simpleHandler')); // lets ensure we set E_DEPRECATED to minimize errors // CRM-6327 @@ -241,7 +241,7 @@ class CRM_Core_Config extends CRM_Core_Config_Variables { // set the callback at the very very end, to avoid an infinite loop // set the error callback - CRM_Core_Error::setCallback(); + unset($errorScope); // call the hook so other modules can add to the config // again doing this at the very very end diff --git a/CRM/Core/Smarty/plugins/function.crmAPI.php b/CRM/Core/Smarty/plugins/function.crmAPI.php index 44167bc0a1..2f54023506 100644 --- a/CRM/Core/Smarty/plugins/function.crmAPI.php +++ b/CRM/Core/Smarty/plugins/function.crmAPI.php @@ -46,7 +46,7 @@ function smarty_function_crmAPI($params, &$smarty) { $smarty->trigger_error("assign: missing 'entity' parameter"); return "crmAPI: missing 'entity' parameter"; } - CRM_Core_Error::setCallback(array('CRM_Utils_REST', 'fatal')); + $errorScope = CRM_Core_TemporaryErrorScope::create(array('CRM_Utils_REST', 'fatal')); $action = $params['action']; $entity = $params['entity']; unset($params['entity']); @@ -55,7 +55,7 @@ function smarty_function_crmAPI($params, &$smarty) { $params['version'] = 3; require_once 'api/api.php'; $result = civicrm_api($entity, $action, $params); - CRM_Core_Error::setCallback(); + unset($errorScope); if ($result === FALSE) { $smarty->trigger_error("Unkown error"); return; diff --git a/CRM/Core/Smarty/plugins/function.crmSetting.php b/CRM/Core/Smarty/plugins/function.crmSetting.php index 15ae241483..3491fc4e87 100644 --- a/CRM/Core/Smarty/plugins/function.crmSetting.php +++ b/CRM/Core/Smarty/plugins/function.crmSetting.php @@ -38,14 +38,14 @@ */ function smarty_function_crmSetting($params, &$smarty) { - CRM_Core_Error::setCallback(array('CRM_Utils_REST', 'fatal')); + $errorScope = CRM_Core_TemporaryErrorScope::create(array('CRM_Utils_REST', 'fatal')); unset($params['method']); unset($params['assign']); $params['version'] = 3; require_once 'api/api.php'; $result = civicrm_api('setting', 'getvalue', $params); - CRM_Core_Error::setCallback(); + unset($errorScope); if ($result === FALSE) { $smarty->trigger_error("Unknown error"); return; diff --git a/CRM/Utils/REST.php b/CRM/Utils/REST.php index 6d501ddf46..5c49b3cc06 100644 --- a/CRM/Utils/REST.php +++ b/CRM/Utils/REST.php @@ -356,9 +356,9 @@ class CRM_Utils_REST { } // trap all fatal errors - CRM_Core_Error::setCallback(array('CRM_Utils_REST', 'fatal')); + $errorScope = CRM_Core_TemporaryErrorScope::create(array('CRM_Utils_REST', 'fatal')); $result = civicrm_api($args[1], $args[2], $params); - CRM_Core_Error::setCallback(); + unset($errorScope); if ($result === FALSE) { return self::error('Unknown error.'); @@ -526,11 +526,11 @@ class CRM_Utils_REST { if (!$params['sequential']) { $params['sequential'] = 1; } + // trap all fatal errors - CRM_Core_Error::setCallback(array('CRM_Utils_REST', 'fatal')); + $errorScope = CRM_Core_TemporaryErrorScope::create(array('CRM_Utils_REST', 'fatal')); $result = civicrm_api($entity, $action, $params); - - CRM_Core_Error::setCallback(); + unset($errorScope); echo self::output($result); -- 2.25.1