aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/elgglib.php
diff options
context:
space:
mode:
authorben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-02-13 16:24:59 +0000
committerben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-02-13 16:24:59 +0000
commit659f6376ca5e0d184585ef40dfc2e3c5256e4f17 (patch)
tree311640cdd82a02bf76d6ea0458040517b761d20f /engine/lib/elgglib.php
parent1ddb05d873cc0b5c03bdfad9ff27a29babc03e85 (diff)
downloadelgg-659f6376ca5e0d184585ef40dfc2e3c5256e4f17.tar.gz
elgg-659f6376ca5e0d184585ef40dfc2e3c5256e4f17.tar.bz2
Exception handling
git-svn-id: https://code.elgg.org/elgg/trunk@25 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib/elgglib.php')
-rw-r--r--engine/lib/elgglib.php59
1 files changed, 38 insertions, 21 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index d8065a84a..63baf16d5 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -123,7 +123,7 @@
*/
function get_library_files($directory, $file_exceptions = array(), $file_list = array()) {
- if (is_file($directory)) {
+ if (is_file($directory) && !in_array($directory,$file_exceptions)) {
$file_list[] = $directory;
} else if ($handle = opendir($directory)) {
while ($file = readdir($handle)) {
@@ -346,19 +346,23 @@
}
return false;
}
+
+ /**
+ * Error handling
+ */
- /**
- * PHP Error handler function.
- * This function acts as a wrapper to catch and report PHP error messages.
- *
- * @see http://uk3.php.net/set-error-handler
- * @param unknown_type $errno
- * @param unknown_type $errmsg
- * @param unknown_type $filename
- * @param unknown_type $linenum
- * @param unknown_type $vars
- */
- function __php_error_handler($errno, $errmsg, $filename, $linenum, $vars)
+ /**
+ * PHP Error handler function.
+ * This function acts as a wrapper to catch and report PHP error messages.
+ *
+ * @see http://www.php.net/set-error-handler
+ * @param int $errno The level of the error raised
+ * @param string $errmsg The error message
+ * @param string $filename The filename the error was raised in
+ * @param int $linenum The line number the error was raised at
+ * @param array $vars An array that points to the active symbol table at the point that the error occurred
+ */
+ function __elgg_php_error_handler($errno, $errmsg, $filename, $linenum, $vars)
{
$error = date("Y-m-d H:i:s (T)") . ": \"" . $errmsg . "\" in file " . $filename . " (line " . $linenum . ")";
@@ -374,17 +378,30 @@
case E_WARNING :
case E_USER_WARNING :
error_log("WARNING: " . $error);
- register_error("WARNING: " . $error);
+ // register_error("WARNING: " . $error);
break;
default:
error_log("DEBUG: " . $error);
- register_error("DEBUG: " . $error);
- }
+ // register_error("DEBUG: " . $error);
+ }
+
+ return true;
+ }
+
+ /**
+ * Custom exception handler.
+ * This function catches any thrown exceptions and handles them appropriately.
+ *
+ * @see http://www.php.net/set-exception-handler
+ * @param Exception $exception The exception being handled
+ */
+
+ function __elgg_php_exception_handler($exception) {
+
+ $body = elgg_view("messages/errors/exception",array('object' => $exception));
+ echo elgg_view("pageshell", array("title" => "Exception", "body" => $body));
+
}
-
-
- // Register the error handler
- error_reporting(E_ALL);
- set_error_handler('__php_error_handler');
+
?> \ No newline at end of file