Source for file jCmdlineCoordinator.class.php

Documentation is available at jCmdlineCoordinator.class.php

  1. <?php
  2. /**
  3. @package      jelix
  4. @subpackage   core
  5. @author       Christophe Thiriot
  6. @contributor  Laurent Jouanneau
  7. @copyright    2008 Christophe Thiriot, 2011-2012 Laurent Jouanneau
  8. @link         http://www.jelix.org
  9. @licence      GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. */
  11.  
  12. /**
  13.  * The command line version of jCoordinator
  14.  *
  15.  * This allows us to handle exit code of commands properly
  16.  * @package  jelix
  17.  * @subpackage core
  18.  */
  19. class jCmdlineCoordinator extends jCoordinator {
  20.  
  21.     function __construct ($configFile$enableErrorHandler=true{
  22.         if (!jServer::isCLI()) {
  23.             throw new Exception("Error: you're not allowed to execute this script outside a command line shell.");
  24.         }
  25.  
  26.         jApp::setEnv('cli');
  27.         parent::__construct($configFile$enableErrorHandler);
  28.     }
  29.  
  30.     /**
  31.     * main method : launch the execution of the action.
  32.     *
  33.     * This method should be called in a Command line entry point.
  34.     * @param  jRequestCmdline  $request the command line request object
  35.     */
  36.     public function process($request){
  37.         $this->allErrorMessages = jBasicErrorHandler::$initErrorMessages;
  38.         parent::process($request);
  39.         exit($this->response->getExitCode());
  40.     }
  41.  
  42.     public $allErrorMessages = array();
  43.  
  44.     /**
  45.      * Handle an error event. Called by error handler and exception handler.
  46.      * @param string  $type    error type : 'error', 'warning', 'notice'
  47.      * @param integer $code    error code
  48.      * @param string  $message error message
  49.      * @param string  $file    the file name where the error appear
  50.      * @param integer $line    the line number where the error appear
  51.      * @param array   $trace   the stack trace
  52.      * @since 1.1
  53.      */
  54.     public function handleError($type$code$message$file$line$trace){
  55.  
  56.         $errorLog new jLogErrorMessage($type$code$message$file$line$trace);
  57.  
  58.         // we have config, so we can process "normally"
  59.         $errorLog->setFormat(jApp::config()->error_handling['messageLogFormat']);
  60.         jLog::log($errorLog$type);
  61.         $this->allErrorMessages[$errorLog;
  62.  
  63.         // if non fatal error, it is finished
  64.         if ($type != 'error')
  65.             return;
  66.  
  67.         $this->errorMessage = $errorLog;
  68.  
  69.         while (ob_get_level(&& @ob_end_clean());
  70.  
  71.         if($this->response{
  72.             $resp $this->response;
  73.         }
  74.         else {
  75.             require_once(JELIX_LIB_CORE_PATH.'response/jResponseCmdline.class.php');
  76.             $resp $this->response = new jResponseCmdline();
  77.         }
  78.         $resp->outputErrors();
  79.         jSession::end();
  80.         exit(1);
  81.     }
  82. }

Documentation generated on Mon, 26 Oct 2015 21:52:00 +0100 by phpDocumentor 1.4.3