Development

/branches/1.3/lib/util/sfParameterHolder.class.php

You must first sign up to be able to contribute.

root/branches/1.3/lib/util/sfParameterHolder.class.php

Revision 23810, 4.8 kB (checked in by Kris.Wallsmith, 5 years ago)

[1.3] set svn:eol-style property to native and svn:keywords property to Id on all .php files

  • Property svn:mime-type set to text/x-php
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1 <?php
2
3 /*
4  * This file is part of the symfony package.
5  * (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
6  * (c) 2004-2006 Sean Kerr <sean@code-box.org>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 /**
13  * sfParameterHolder provides a base class for managing parameters.
14  *
15  * Parameters, in this case, are used to extend classes with additional data
16  * that requires no additional logic to manage.
17  *
18  * @package    symfony
19  * @subpackage util
20  * @author     Fabien Potencier <fabien.potencier@symfony-project.com>
21  * @author     Sean Kerr <sean@code-box.org>
22  * @version    SVN: $Id$
23  */
24 class sfParameterHolder implements Serializable
25 {
26   protected $parameters = array();
27
28   /**
29    * The constructor for sfParameterHolder.
30    */
31   public function __construct()
32   {
33   }
34
35   /**
36    * Clears all parameters associated with this request.
37    */
38   public function clear()
39   {
40     $this->parameters = array();
41   }
42
43   /**
44    * Retrieves a parameter.
45    *
46    * @param  string $name     A parameter name
47    * @param  mixed  $default  A default parameter value
48    *
49    * @return mixed A parameter value, if the parameter exists, otherwise null
50    */
51   public function & get($name, $default = null)
52   {
53     if (array_key_exists($name, $this->parameters))
54     {
55       $value = & $this->parameters[$name];
56     }
57     else
58     {
59       $value = sfToolkit::getArrayValueForPath($this->parameters, $name, $default);
60     }
61
62     return $value;
63   }
64
65   /**
66    * Retrieves an array of parameter names.
67    *
68    * @return array An indexed array of parameter names
69    */
70   public function getNames()
71   {
72     return array_keys($this->parameters);
73   }
74
75   /**
76    * Retrieves an array of parameters.
77    *
78    * @return array An associative array of parameters
79    */
80   public function & getAll()
81   {
82     return $this->parameters;
83   }
84
85   /**
86    * Indicates whether or not a parameter exists.
87    *
88    * @param  string $name  A parameter name
89    *
90    * @return bool true, if the parameter exists, otherwise false
91    */
92   public function has($name)
93   {
94     if (array_key_exists($name, $this->parameters))
95     {
96       return true;
97     }
98     else
99     {
100       return sfToolkit::hasArrayValueForPath($this->parameters, $name);
101     }
102
103     return false;
104   }
105
106   /**
107    * Remove a parameter.
108    *
109    * @param  string $name     A parameter name
110    * @param  mixed  $default  A default parameter value
111    *
112    * @return string A parameter value, if the parameter was removed, otherwise null
113    */
114   public function remove($name, $default = null)
115   {
116     $retval = $default;
117
118     if (array_key_exists($name, $this->parameters))
119     {
120       $retval = $this->parameters[$name];
121       unset($this->parameters[$name]);
122     }
123     else
124     {
125       $retval = sfToolkit::removeArrayValueForPath($this->parameters, $name, $default);
126     }
127
128     return $retval;
129   }
130
131   /**
132    * Sets a parameter.
133    *
134    * If a parameter with the name already exists the value will be overridden.
135    *
136    * @param string $name   A parameter name
137    * @param mixed  $value  A parameter value
138    */
139   public function set($name, $value)
140   {
141     $this->parameters[$name] = $value;
142   }
143
144   /**
145    * Sets a parameter by reference.
146    *
147    * If a parameter with the name already exists the value will be overridden.
148    *
149    * @param string $name   A parameter name
150    * @param mixed  $value  A reference to a parameter value
151    */
152   public function setByRef($name, & $value)
153   {
154     $this->parameters[$name] =& $value;
155   }
156
157   /**
158    * Sets an array of parameters.
159    *
160    * If an existing parameter name matches any of the keys in the supplied
161    * array, the associated value will be overridden.
162    *
163    * @param array $parameters  An associative array of parameters and their associated values
164    */
165   public function add($parameters)
166   {
167     if (null === $parameters)
168     {
169       return;
170     }
171
172     foreach ($parameters as $key => $value)
173     {
174       $this->parameters[$key] = $value;
175     }
176   }
177
178   /**
179    * Sets an array of parameters by reference.
180    *
181    * If an existing parameter name matches any of the keys in the supplied
182    * array, the associated value will be overridden.
183    *
184    * @param array $parameters  An associative array of parameters and references to their associated values
185    */
186   public function addByRef(& $parameters)
187   {
188     foreach ($parameters as $key => &$value)
189     {
190       $this->parameters[$key] =& $value;
191     }
192   }
193
194   /**
195    * Serializes the current instance.
196    *
197    * @return array Objects instance
198    */
199   public function serialize()
200   {
201     return serialize($this->parameters);
202   }
203
204   /**
205    * Unserializes a sfParameterHolder instance.
206    *
207    * @param string $serialized  A serialized sfParameterHolder instance
208    */
209   public function unserialize($serialized)
210   {
211     $this->parameters = unserialize($serialized);
212   }
213 }
214
Note: See TracBrowser for help on using the browser.