summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorZach Copley <zach@controlyourself.ca>2009-02-11 21:41:56 -0800
committerZach Copley <zach@controlyourself.ca>2009-02-11 21:41:56 -0800
commit9f035e2847e0d119ca3d70e02df6f4fa73ca64c3 (patch)
tree518d2eafdea2747ca3210595d34625d03f85c479 /lib
parent9d07032334043625a5aa3243d911bdc1c77a7a9c (diff)
Code to handle PEAR_Errors raised by DB_DataObject that are bubbling
up, but are actually expected and can safely be ignored.
Diffstat (limited to 'lib')
-rw-r--r--lib/action.php26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/action.php b/lib/action.php
index bd38bf79c..e3a8ef62c 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -82,6 +82,17 @@ class Action extends HTMLOutputter // lawsuit
*/
function prepare($argarray)
{
+ // This is for checking PEAR_Errors raised by DB_DataObject.
+ // Setting this to PEAR_ERROR_CALLBACK because setting
+ // to PEAR_ERROR_EXCEPTION does't work to allow PEAR_Errors
+ // to be handled as PHP5 exceptions, and PEAR_ERROR_RETURN
+ // does not cause DB_DataObject to actually return PEAR_Errors
+ // that can be checked with PEAR::isError() -- instead
+ // they just disappear into the ether, and can only be checked for
+ // after the fact. -- Zach
+ PEAR::setErrorHandling(PEAR_ERROR_CALLBACK,
+ array($this, "checkDB_DataObjectError"));
+
$this->args =& common_copy_args($argarray);
return true;
}
@@ -845,6 +856,21 @@ class Action extends HTMLOutputter // lawsuit
}
/**
+ * Check old fashioned PEAR_Error msgs coming from DB_DataObject
+ *
+ * Logs the DB_DataObject error. Override to do something else.
+ *
+ * @param PEAR_Error
+ *
+ * @return nothing
+ */
+
+ function checkDB_DataObjectError($error) {
+ common_log(LOG_ERR, $error->getMessage());
+ // XXX: throw an exception here? --Zach
+ }
+
+ /**
* Returns the current URL
*
* @return string current URL