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, Gaëtan MARROT
  7. @copyright    2008 Christophe Thiriot, 2011-2013 Laurent Jouanneau, 2013 Gaëtan MARROT
  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.     protected function setRequest ($request{
  31.         $this->allErrorMessages = jBasicErrorHandler::$initErrorMessages;
  32.         parent::setRequest($request);
  33.     }
  34.  
  35.     /**
  36.     * main method : launch the execution of the action.
  37.     *
  38.     * This method should be called in a Command line entry point.
  39.     * @param  jRequestCmdline  $request the command line request object
  40.     */
  41.     public function process($request=null){
  42.         parent::process($request);
  43.         exit($this->response->getExitCode());
  44.     }
  45.  
  46.     public $allErrorMessages = array();
  47.  
  48.     /**
  49.      * Handle an error event. Called by error handler and exception handler.
  50.      * @param string  $type    error type : 'error', 'warning', 'notice'
  51.      * @param integer $code    error code
  52.      * @param string  $message error message
  53.      * @param string  $file    the file name where the error appear
  54.      * @param integer $line    the line number where the error appear
  55.      * @param array   $trace   the stack trace
  56.      * @since 1.1
  57.      */
  58.     public function handleError($type$code$message$file$line$trace){
  59.  
  60.         $errorLog new jLogErrorMessage($type$code$message$file$line$trace);
  61.  
  62.         // we have config, so we can process "normally"
  63.         $errorLog->setFormat(jApp::config()->error_handling['messageLogFormat']);
  64.         jLog::log($errorLog$type);
  65.         $this->allErrorMessages[$errorLog;
  66.  
  67.         // if non fatal error, it is finished
  68.         if ($type != 'error')
  69.             return;
  70.  
  71.         $this->errorMessage = $errorLog;
  72.  
  73.         while (ob_get_level(&& @ob_end_clean());
  74.  
  75.         if($this->response{
  76.             $resp $this->response;
  77.         }
  78.         else {
  79.             require_once(JELIX_LIB_CORE_PATH.'response/jResponseCmdline.class.php');
  80.             $resp $this->response = new jResponseCmdline();
  81.         }
  82.         $resp->outputErrors();
  83.         jSession::end();
  84.         exit(1);
  85.     }
  86. }

Documentation generated on Wed, 04 Jan 2017 22:52:29 +0100 by phpDocumentor 1.4.3