diff options
author | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-02-13 16:24:59 +0000 |
---|---|---|
committer | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-02-13 16:24:59 +0000 |
commit | 659f6376ca5e0d184585ef40dfc2e3c5256e4f17 (patch) | |
tree | 311640cdd82a02bf76d6ea0458040517b761d20f /engine/lib/elgglib.php | |
parent | 1ddb05d873cc0b5c03bdfad9ff27a29babc03e85 (diff) | |
download | elgg-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.php | 59 |
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 |