Source for file jControllerCmdLine.class.php

Documentation is available at jControllerCmdLine.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  controllers
  5. @author      Loic Mathaud
  6. @contributor M. Thiriot, Laurent Jouanneau
  7. @copyright   2006 Loic Mathaud, 2007 M. Thiriot, 2008 Laurent Jouanneau
  8. @link        http://www.jelix.org
  9. @licence     http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  10. *
  11. */
  12.  
  13. /**
  14.  * a base class for controllers used in command line application
  15.  * @package    jelix
  16.  * @subpackage controllers
  17.  * @since 1.0a3
  18.  */
  19. class jControllerCmdLine extends jController {
  20.     /**
  21.      * help for each action
  22.      * it should be an array('method'=>'help',...);
  23.      * @var array 
  24.      */
  25.     public $help = array();
  26.  
  27.     /**
  28.      *   allowed options
  29.      * @var array 
  30.      * @see jCmdUtils::getOptionsAndParams
  31.      */
  32.     protected $allowed_options;
  33.  
  34.     /**
  35.      *   allowed parameters
  36.      * @var array 
  37.      * @see jCmdUtils::getOptionsAndParams
  38.      */
  39.     protected $allowed_parameters;
  40.  
  41.     /**
  42.      *   founded options
  43.      * @var array 
  44.      * @see jCmdUtils::getOptionsAndParams
  45.      */
  46.     protected $_options;
  47.  
  48.     /**
  49.      *   founded parameters
  50.      * @var array 
  51.      * @see jCmdUtils::getOptionsAndParams
  52.      */
  53.     protected $_parameters;
  54.  
  55.     /**
  56.     *
  57.     * @param jRequest $request 
  58.     */
  59.     function __construct ($request){
  60.         // we receive null when the controller is created only for help
  61.         if($request == null)
  62.             return;
  63.         $this->request = $request;
  64.         $params $this->request->params;
  65.         unset($params['module']);
  66.         unset($params['action']);
  67.  
  68.         $action new jSelectorAct($this->request->params['action']);
  69.  
  70.         if!in_array($action->methodget_class_methods(get_class($this)))) {
  71.             throw new jException('jelix~errors.cli.unknow.command'$action->method);
  72.         }
  73.         $opt = isset($this->allowed_options[$action->method]$this->allowed_options[$action->method]array();
  74.         $par = isset($this->allowed_parameters[$action->method]$this->allowed_parameters[$action->method]array();
  75.  
  76.         list($this->_options,$this->_parametersjCmdUtils::getOptionsAndParams($params$opt$par);
  77.  
  78.     }
  79.  
  80.     protected function param ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  81.         if (isset($this->_parameters[$parName])) {
  82.             if($this->_parameters[$parName== '' && $useDefaultIfEmpty)
  83.                 return $parDefaultValue;
  84.             else
  85.                 return $this->_parameters[$parName];
  86.         else {
  87.             return $parDefaultValue;
  88.         }
  89.     }
  90.  
  91.     protected function option($name{
  92.         if (isset($this->_options[$name])) {
  93.             return $this->_options[$name];
  94.         else {
  95.             return false;
  96.         }
  97.     }
  98. }

Documentation generated on Thu, 22 Mar 2012 22:14:17 +0100 by phpDocumentor 1.4.3