File indexing completed on 2024-12-22 05:36:33

0001 <?php
0002 /**
0003  * Zend Framework
0004  *
0005  * LICENSE
0006  *
0007  * This source file is subject to the new BSD license that is bundled
0008  * with this package in the file LICENSE.txt.
0009  * It is also available through the world-wide-web at this URL:
0010  * http://framework.zend.com/license/new-bsd
0011  * If you did not receive a copy of the license and are unable to
0012  * obtain it through the world-wide-web, please send an email
0013  * to license@zend.com so we can send you a copy immediately.
0014  *
0015  * @category   Zend
0016  * @package    Zend_Controller
0017  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0018  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0019  * @version    $Id$
0020  */
0021 
0022 /**
0023  * @category   Zend
0024  * @package    Zend_Controller
0025  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0026  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0027  */
0028 abstract class Zend_Controller_Request_Abstract
0029 {
0030     /**
0031      * Has the action been dispatched?
0032      * @var boolean
0033      */
0034     protected $_dispatched = false;
0035 
0036     /**
0037      * Module
0038      * @var string
0039      */
0040     protected $_module;
0041 
0042     /**
0043      * Module key for retrieving module from params
0044      * @var string
0045      */
0046     protected $_moduleKey = 'module';
0047 
0048     /**
0049      * Controller
0050      * @var string
0051      */
0052     protected $_controller;
0053 
0054     /**
0055      * Controller key for retrieving controller from params
0056      * @var string
0057      */
0058     protected $_controllerKey = 'controller';
0059 
0060     /**
0061      * Action
0062      * @var string
0063      */
0064     protected $_action;
0065 
0066     /**
0067      * Action key for retrieving action from params
0068      * @var string
0069      */
0070     protected $_actionKey = 'action';
0071 
0072     /**
0073      * Request parameters
0074      * @var array
0075      */
0076     protected $_params = array();
0077 
0078     /**
0079      * Retrieve the module name
0080      *
0081      * @return string
0082      */
0083     public function getModuleName()
0084     {
0085         if (null === $this->_module) {
0086             $this->_module = $this->getParam($this->getModuleKey());
0087         }
0088 
0089         return $this->_module;
0090     }
0091 
0092     /**
0093      * Set the module name to use
0094      *
0095      * @param string $value
0096      * @return Zend_Controller_Request_Abstract
0097      */
0098     public function setModuleName($value)
0099     {
0100         $this->_module = $value;
0101         return $this;
0102     }
0103 
0104     /**
0105      * Retrieve the controller name
0106      *
0107      * @return string
0108      */
0109     public function getControllerName()
0110     {
0111         if (null === $this->_controller) {
0112             $this->_controller = $this->getParam($this->getControllerKey());
0113         }
0114 
0115         return $this->_controller;
0116     }
0117 
0118     /**
0119      * Set the controller name to use
0120      *
0121      * @param string $value
0122      * @return Zend_Controller_Request_Abstract
0123      */
0124     public function setControllerName($value)
0125     {
0126         $this->_controller = $value;
0127         return $this;
0128     }
0129 
0130     /**
0131      * Retrieve the action name
0132      *
0133      * @return string
0134      */
0135     public function getActionName()
0136     {
0137         if (null === $this->_action) {
0138             $this->_action = $this->getParam($this->getActionKey());
0139         }
0140 
0141         return $this->_action;
0142     }
0143 
0144     /**
0145      * Set the action name
0146      *
0147      * @param string $value
0148      * @return Zend_Controller_Request_Abstract
0149      */
0150     public function setActionName($value)
0151     {
0152         $this->_action = $value;
0153         /**
0154          * @see ZF-3465
0155          */
0156         if (null === $value) {
0157             $this->setParam($this->getActionKey(), $value);
0158         }
0159         return $this;
0160     }
0161 
0162     /**
0163      * Retrieve the module key
0164      *
0165      * @return string
0166      */
0167     public function getModuleKey()
0168     {
0169         return $this->_moduleKey;
0170     }
0171 
0172     /**
0173      * Set the module key
0174      *
0175      * @param string $key
0176      * @return Zend_Controller_Request_Abstract
0177      */
0178     public function setModuleKey($key)
0179     {
0180         $this->_moduleKey = (string) $key;
0181         return $this;
0182     }
0183 
0184     /**
0185      * Retrieve the controller key
0186      *
0187      * @return string
0188      */
0189     public function getControllerKey()
0190     {
0191         return $this->_controllerKey;
0192     }
0193 
0194     /**
0195      * Set the controller key
0196      *
0197      * @param string $key
0198      * @return Zend_Controller_Request_Abstract
0199      */
0200     public function setControllerKey($key)
0201     {
0202         $this->_controllerKey = (string) $key;
0203         return $this;
0204     }
0205 
0206     /**
0207      * Retrieve the action key
0208      *
0209      * @return string
0210      */
0211     public function getActionKey()
0212     {
0213         return $this->_actionKey;
0214     }
0215 
0216     /**
0217      * Set the action key
0218      *
0219      * @param string $key
0220      * @return Zend_Controller_Request_Abstract
0221      */
0222     public function setActionKey($key)
0223     {
0224         $this->_actionKey = (string) $key;
0225         return $this;
0226     }
0227 
0228     /**
0229      * Get an action parameter
0230      *
0231      * @param string $key
0232      * @param mixed $default Default value to use if key not found
0233      * @return mixed
0234      */
0235     public function getParam($key, $default = null)
0236     {
0237         $key = (string) $key;
0238         if (isset($this->_params[$key])) {
0239             return $this->_params[$key];
0240         }
0241 
0242         return $default;
0243     }
0244 
0245     /**
0246      * Retrieve only user params (i.e, any param specific to the object and not the environment)
0247      *
0248      * @return array
0249      */
0250     public function getUserParams()
0251     {
0252         return $this->_params;
0253     }
0254 
0255     /**
0256      * Retrieve a single user param (i.e, a param specific to the object and not the environment)
0257      *
0258      * @param string $key
0259      * @param string $default Default value to use if key not found
0260      * @return mixed
0261      */
0262     public function getUserParam($key, $default = null)
0263     {
0264         if (isset($this->_params[$key])) {
0265             return $this->_params[$key];
0266         }
0267 
0268         return $default;
0269     }
0270 
0271     /**
0272      * Set an action parameter
0273      *
0274      * A $value of null will unset the $key if it exists
0275      *
0276      * @param string $key
0277      * @param mixed $value
0278      * @return Zend_Controller_Request_Abstract
0279      */
0280     public function setParam($key, $value)
0281     {
0282         $key = (string) $key;
0283 
0284         if ((null === $value) && isset($this->_params[$key])) {
0285             unset($this->_params[$key]);
0286         } elseif (null !== $value) {
0287             $this->_params[$key] = $value;
0288         }
0289 
0290         return $this;
0291     }
0292 
0293     /**
0294      * Get all action parameters
0295      *
0296      * @return array
0297      */
0298      public function getParams()
0299      {
0300          return $this->_params;
0301      }
0302 
0303     /**
0304      * Set action parameters en masse; does not overwrite
0305      *
0306      * Null values will unset the associated key.
0307      *
0308      * @param array $array
0309      * @return Zend_Controller_Request_Abstract
0310      */
0311     public function setParams(array $array)
0312     {
0313         $this->_params = $this->_params + (array) $array;
0314 
0315         foreach ($array as $key => $value) {
0316             if (null === $value) {
0317                 unset($this->_params[$key]);
0318             }
0319         }
0320 
0321         return $this;
0322     }
0323 
0324     /**
0325      * Unset all user parameters
0326      *
0327      * @return Zend_Controller_Request_Abstract
0328      */
0329     public function clearParams()
0330     {
0331         $this->_params = array();
0332         return $this;
0333     }
0334 
0335     /**
0336      * Set flag indicating whether or not request has been dispatched
0337      *
0338      * @param boolean $flag
0339      * @return Zend_Controller_Request_Abstract
0340      */
0341     public function setDispatched($flag = true)
0342     {
0343         $this->_dispatched = $flag ? true : false;
0344         return $this;
0345     }
0346 
0347     /**
0348      * Determine if the request has been dispatched
0349      *
0350      * @return boolean
0351      */
0352     public function isDispatched()
0353     {
0354         return $this->_dispatched;
0355     }
0356 }