Source for file jController.class.php

Documentation is available at jController.class.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage core
  5. @author      Laurent Jouanneau
  6. @contributor Loic Mathaud
  7. @copyright   2005-2007 Laurent Jouanneau, 2006 Loic Mathaud
  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.  * interface for controllers used for RESTFull request/response
  14.  * @package  jelix
  15.  * @subpackage core
  16.  */
  17. interface jIRestController{
  18.     public function get();
  19.     public function post();
  20.     public function put();
  21.     public function delete();
  22. }
  23.  
  24. /**
  25.  * class base for controllers
  26.  *
  27.  * A controller is used to implement one or many actions, one method for each action.
  28.  * @package  jelix
  29.  * @subpackage core
  30.  */
  31. abstract class jController{
  32.  
  33.     /**
  34.      * parameters for plugins
  35.      *
  36.      * this array should contains all parameters needed by installed plugins for
  37.      * each action, see the documentation of each plugins to know this parameters.
  38.      * keys : name of an action or * for parameters to all action
  39.      * values : array that contains all plugin parameters
  40.      * @var array 
  41.      */
  42.     public $pluginParams=array();
  43.  
  44.     /**
  45.      * the request object
  46.      * @var jRequest 
  47.      */
  48.     protected $request;
  49.  
  50.     /**
  51.      *
  52.      * @param jRequest $request the current request object
  53.      */
  54.     function __construct $request){
  55.         $this->request = $request;
  56.     }
  57.  
  58.     /**
  59.     * jZone::get alias
  60.     * @param string $name zone selector
  61.     * @param array $params associative array, parameters
  62.     */
  63.     protected function processZone($name$params=array ()){
  64.         return jZone::get ($name$params);
  65.     }
  66.  
  67.     /**
  68.     * Gets the value of a request parameter. If not defined, gets its default value.
  69.     * @param string  $parName           the name of the request parameter
  70.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  71.     * @param boolean $useDefaultIfEmpty true: says to return the default value if the parameter value is ""
  72.     * @return mixed the request parameter value
  73.     */
  74.     protected function param ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  75.        return $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  76.     }
  77.  
  78.     /**
  79.     * same as param(), but convert the value to an integer value. If it isn't
  80.     * a numerical value, return null.
  81.     * @param string  $parName           the name of the request parameter
  82.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  83.     * @param boolean $useDefaultIfEmpty true: says to return the default value the value is ""
  84.     * @return integer the request parameter value
  85.     */
  86.     protected function intParam ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  87.         $value $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  88.         if(is_numeric($value))
  89.             return intval($value);
  90.         else
  91.             return null;
  92.     }
  93.  
  94.     /**
  95.     * same as param(), but convert the value to a float value. If it isn't
  96.     * a numerical value, return null.
  97.     * @param string  $parName           the name of the request parameter
  98.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  99.     * @param boolean $useDefaultIfEmpty true: says to return the default value the value is ""
  100.     * @return float the request parameter value
  101.     */
  102.     protected function floatParam ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  103.         $value $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  104.         if(is_numeric($value))
  105.             return floatval($value);
  106.         else
  107.             return null;
  108.     }
  109.  
  110.     /**
  111.     * same as param(), but convert the value to a boolean value. If it isn't
  112.     * a numerical value, return null.
  113.     * @param string  $parName           the name of the request parameter
  114.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  115.     * @param boolean $useDefaultIfEmpty true: says to return the default value the value is ""
  116.     * @return boolean the request parameter value
  117.     */
  118.     protected function boolParam ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  119.         $value $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  120.         if($value=="true" || $value == "1" || $value=="on" || $value=="yes")
  121.             return true;
  122.         elseif($value=="false" || $value == "0" || $value=="off" || $value=="no")
  123.             return false;
  124.         else
  125.             return null;
  126.     }
  127.  
  128.     /**
  129.      * @return array all request parameters
  130.      */
  131.     protected function params()return $this->request->params}
  132.  
  133.     /**
  134.      * get a response object.
  135.      * @param string $name the name of the response type (ex: "html")
  136.      * @param boolean $useOriginal true:don't use the response object redefined by the application
  137.      * @return jResponse the response object
  138.      */
  139.     protected function getResponse($name$useOriginal=false){
  140.         return $this->request->getResponse($name$useOriginal);
  141.     }
  142.  
  143. }
  144. ?>

Documentation generated on Wed, 07 Sep 2011 13:46:46 +0200 by phpDocumentor 1.4.3