Source for file jCmdlineCoordinator.class.php
Documentation is available at jCmdlineCoordinator.class.php
- <?php
- /**
- * @package jelix
- * @subpackage core
- * @author Christophe Thiriot
- * @contributor Laurent Jouanneau, Gaëtan MARROT
- * @copyright 2008 Christophe Thiriot, 2011-2013 Laurent Jouanneau, 2013 Gaëtan MARROT
- * @link http://www.jelix.org
- * @licence GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
- */
-
- /**
- * The command line version of jCoordinator
- *
- * This allows us to handle exit code of commands properly
- * @package jelix
- * @subpackage core
- */
- class jCmdlineCoordinator extends jCoordinator {
-
- function __construct ($configFile, $enableErrorHandler=true) {
- if (!jServer::isCLI()) {
- throw new Exception("Error: you're not allowed to execute this script outside a command line shell.");
- }
-
- jApp::setEnv('cli');
- parent::__construct($configFile, $enableErrorHandler);
- }
-
- protected function setRequest ($request) {
- $this->allErrorMessages = jBasicErrorHandler::$initErrorMessages;
- parent::setRequest($request);
- }
-
- /**
- * main method : launch the execution of the action.
- *
- * This method should be called in a Command line entry point.
- * @param jRequestCmdline $request the command line request object
- */
- public function process($request=null){
- parent::process($request);
- exit($this->response->getExitCode());
- }
-
- public $allErrorMessages = array();
-
- /**
- * Handle an error event. Called by error handler and exception handler.
- * @param string $type error type : 'error', 'warning', 'notice'
- * @param integer $code error code
- * @param string $message error message
- * @param string $file the file name where the error appear
- * @param integer $line the line number where the error appear
- * @param array $trace the stack trace
- * @since 1.1
- */
- public function handleError($type, $code, $message, $file, $line, $trace){
-
- $errorLog = new jLogErrorMessage($type, $code, $message, $file, $line, $trace);
-
- // we have config, so we can process "normally"
- $errorLog->setFormat(jApp::config()->error_handling['messageLogFormat']);
- jLog::log($errorLog, $type);
- $this->allErrorMessages[] = $errorLog;
-
- // if non fatal error, it is finished
- if ($type != 'error')
- return;
-
- $this->errorMessage = $errorLog;
-
- while (ob_get_level() && @ob_end_clean());
-
- if($this->response) {
- $resp = $this->response;
- }
- else {
- require_once(JELIX_LIB_CORE_PATH.'response/jResponseCmdline.class.php');
- $resp = $this->response = new jResponseCmdline();
- }
- $resp->outputErrors();
- jSession::end();
- exit(1);
- }
- }
Documentation generated on Wed, 04 Jan 2017 22:52:29 +0100 by phpDocumentor 1.4.3