|
|
@@ -134,10 +134,8 @@ class ShellDispatcher {
|
|
|
include_once CAKE_CORE_INCLUDE_PATH . DS . 'Cake' . DS . 'Console' . DS . 'Templates' . DS . 'skel' . DS . 'Config' . DS . 'core.php';
|
|
|
App::build();
|
|
|
}
|
|
|
- require_once CAKE . 'Console' . DS . 'ConsoleErrorHandler.php';
|
|
|
- $ErrorHandler = new ConsoleErrorHandler();
|
|
|
- set_exception_handler(array($ErrorHandler, 'handleException'));
|
|
|
- set_error_handler(array($ErrorHandler, 'handleError'), Configure::read('Error.level'));
|
|
|
+
|
|
|
+ $this->setErrorHandlers();
|
|
|
|
|
|
if (!defined('FULL_BASE_URL')) {
|
|
|
define('FULL_BASE_URL', 'http://localhost');
|
|
|
@@ -147,6 +145,30 @@ class ShellDispatcher {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * Set the error/exception handlers for the console
|
|
|
+ * based on the `Error.consoleHandler`, and `Exception.consoleHandler` values
|
|
|
+ * if they are set. If they are not set, the default ConsoleErrorHandler will be
|
|
|
+ * used.
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function setErrorHandlers() {
|
|
|
+ App::uses('ConsoleErrorHandler', 'Console');
|
|
|
+ $error = Configure::read('Error');
|
|
|
+ $exception = Configure::read('Exception');
|
|
|
+
|
|
|
+ $errorHandler = new ConsoleErrorHandler();
|
|
|
+ if (empty($error['consoleHandler'])) {
|
|
|
+ $error['consoleHandler'] = array($errorHandler, 'handleError');
|
|
|
+ }
|
|
|
+ if (empty($exception['consoleHandler'])) {
|
|
|
+ $exception['consoleHandler'] = array($errorHandler, 'handleException');
|
|
|
+ }
|
|
|
+ set_exception_handler($exception['consoleHandler']);
|
|
|
+ set_error_handler($error['consoleHandler'], Configure::read('Error.level'));
|
|
|
+ }
|
|
|
+
|
|
|
+/**
|
|
|
* Dispatches a CLI request
|
|
|
*
|
|
|
* @return boolean
|