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 of the coordinator
  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.     * @deprecated
  63.     */
  64.     protected function processZone($name$params=array ()){
  65.         return jZone::get ($name$params);
  66.     }
  67.  
  68.     /**
  69.     * Gets the value of a request parameter. If not defined, gets its default value.
  70.     * @param string  $parName           the name of the request parameter
  71.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  72.     * @param boolean $useDefaultIfEmpty true: says to return the default value if the parameter value is ""
  73.     * @return mixed the request parameter value
  74.     */
  75.     protected function param ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  76.        return $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  77.     }
  78.  
  79.     /**
  80.     * same as param(), but convert the value to an integer value. If it isn't
  81.     * a numerical value, return null.
  82.     * @param string  $parName           the name of the request parameter
  83.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  84.     * @param boolean $useDefaultIfEmpty true: says to return the default value the value is ""
  85.     * @return integer the request parameter value
  86.     */
  87.     protected function intParam ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  88.         $value $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  89.         if(is_numeric($value))
  90.             return intval($value);
  91.         else
  92.             return null;
  93.     }
  94.  
  95.     /**
  96.     * same as param(), but convert the value to a float value. If it isn't
  97.     * a numerical value, return null.
  98.     * @param string  $parName           the name of the request parameter
  99.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  100.     * @param boolean $useDefaultIfEmpty true: says to return the default value the value is ""
  101.     * @return float the request parameter value
  102.     */
  103.     protected function floatParam ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  104.         $value $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  105.         if(is_numeric($value))
  106.             return floatval($value);
  107.         else
  108.             return null;
  109.     }
  110.  
  111.     /**
  112.     * same as param(), but convert the value to a boolean value. If it isn't
  113.     * a numerical value, return null.
  114.     * @param string  $parName           the name of the request parameter
  115.     * @param mixed   $parDefaultValue   the default returned value if the parameter doesn't exists
  116.     * @param boolean $useDefaultIfEmpty true: says to return the default value the value is ""
  117.     * @return boolean the request parameter value
  118.     */
  119.     protected function boolParam ($parName$parDefaultValue=null$useDefaultIfEmpty=false){
  120.         $value $this->request->getParam($parName$parDefaultValue$useDefaultIfEmpty);
  121.         if($value=="true" || $value == "1" || $value=="on" || $value=="yes")
  122.             return true;
  123.         elseif($value=="false" || $value == "0" || $value=="off" || $value=="no")
  124.             return false;
  125.         else
  126.             return null;
  127.     }
  128.  
  129.     /**
  130.      * @return array all request parameters
  131.      */
  132.     protected function params()return $this->request->params}
  133.  
  134.     /**
  135.      * get a response object.
  136.      * @param string $name the name of the response type (ex: "html")
  137.      * @param boolean $useOriginal true:don't use the response object redefined by the application
  138.      * @return jResponse the response object
  139.      */
  140.     protected function getResponse($name=''$useOriginal=false){
  141.         return $this->request->getResponse($name$useOriginal);
  142.     }
  143.  
  144. }

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