Commit e226a463 authored by Taylor Otwell's avatar Taylor Otwell

refactoring.

parent 6bd3dcb0
......@@ -2,6 +2,19 @@
return array(
/*
|--------------------------------------------------------------------------
| Ignored Error Levels
|--------------------------------------------------------------------------
|
| Here you may specify the error levels that should be ignored by the
| Laravel error handler. These levels will still be logged; however, no
| information about about them will be displayed.
|
*/
'ignore' => array(E_NOTICE, E_USER_NOTICE, E_DEPRECATED, E_USER_DEPRECATED),
/*
|--------------------------------------------------------------------------
| Error Detail
......@@ -29,7 +42,7 @@ return array(
|
*/
'log' => false,
'log' => true,
/*
|--------------------------------------------------------------------------
......@@ -46,17 +59,15 @@ return array(
| a single text file within the application storage directory.
|
| Of course, you are free to implement more complex solutions including
| e-mailing the exceptions details to your team, etc.
| emailing the exceptions details to your team, etc.
|
*/
'logger' => function($e, $config)
'logger' => function($exception)
{
$format = '%s | Message: %s | File: %s | Line: %s';
$message = sprintf($format, date('Y-m-d H:i:s'), $e->getMessage(), $e->getFile(), $e->getLine());
$message = (string) $exception;
File::append(STORAGE_PATH.'log.txt', $message.PHP_EOL);
}
File::append(STORAGE_PATH.'log.txt', date('Y-m-d H:i:s').' - '.$message.PHP_EOL);
},
);
\ No newline at end of file
......@@ -58,6 +58,7 @@ require SYS_PATH.'autoloader'.EXT;
*/
Config::load('application');
Config::load('session');
Config::load('error');
/**
* Register the Autoloader's "load" method on the auto-loader stack.
......
......@@ -5,11 +5,10 @@ class Hash {
/**
* Hash a password using the Bcrypt hashing scheme.
*
* Bcrypt provides a future-proof hashing algorithm by allowing the
* number of "rounds" to be increased, thus increasing the time it
* takes to generate the hashed value. The longer it takes takes
* to generate the hash, the more impractical a rainbow table
* attack against the hashes becomes.
* Bcrypt provides a future-proof hashing algorithm by allowing the number of
* "rounds" to be increased, thus increasing the time it takes to generate the
* hashed value. The longer it takes takes to generate the hash, the more
* impractical a rainbow table attack against the hashes becomes.
*
* <code>
* // Create a Bcrypt hash of a value
......
......@@ -23,16 +23,16 @@ date_default_timezone_set(Config::$items['application']['timezone']);
*/
$handler = function($exception)
{
$config = Config::get('error');
$config = Config::$items['error'];
if ($config['log'])
{
call_user_func($config['logger'], $exception, $config);
call_user_func($config['logger'], $exception);
}
if ($config['detail'])
{
echo "<html><h2>Uncaught Exception</h2>
echo "<html><h2>Unhandled Exception</h2>
<h3>Message:</h3>
<pre>".$exception->getMessage()."</pre>
<h3>Location:</h3>
......@@ -44,6 +44,8 @@ $handler = function($exception)
{
Response::error('500')->send();
}
exit(1);
};
/**
......@@ -61,9 +63,14 @@ set_exception_handler(function($exception) use ($handler)
* handler, which will convert the error into an ErrorException object
* and pass the exception into the common exception handler.
*/
set_error_handler(function($number, $error, $file, $line) use ($handler)
set_error_handler(function($number, $error, $file, $line)
{
$handler(new \ErrorException($error, $number, 0, $file, $line));
if (error_reporting() === 0 or in_array($number, Config::$items['error']['ignore']))
{
return;
}
throw new \ErrorException($error, $number, 0, $file, $line);
});
/**
......@@ -212,4 +219,4 @@ if (Config::$items['session']['driver'] !== '')
IoC::core('session')->save($driver);
}
$response->send();
$response->send();
\ No newline at end of file
......@@ -2,13 +2,6 @@
class Request {
/**
* The request URI for the current request.
*
* @var string
*/
public static $uri;
/**
* The route handling the current request.
*
......
......@@ -7,7 +7,7 @@ class URI {
*
* @var string
*/
protected static $uri;
public static $uri;
/**
* The URI segments for the current request.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment