* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * ParameterBag is a container for key/value pairs. * * @author Fabien Potencier */ class ParameterBag { protected $parameters; /** * Constructor. * * @param array $parameters An array of parameters */ public function __construct(array $parameters = array()) { $this->replace($parameters); } /** * Returns the parameters. * * @return array An array of parameters */ public function all() { return $this->parameters; } /** * Returns the parameter keys. * * @return array An array of parameter keys */ public function keys() { return array_keys($this->parameters); } /** * Replaces the current parameters by a new set. * * @param array $parameters An array of parameters */ public function replace(array $parameters = array()) { $this->parameters = $parameters; } /** * Adds parameters. * * @param array $parameters An array of parameters */ public function add(array $parameters = array()) { $this->parameters = array_replace($this->parameters, $parameters); } /** * Returns a parameter by name. * * @param string $key The key * @param mixed $default The default value */ public function get($key, $default = null) { return array_key_exists($key, $this->parameters) ? $this->parameters[$key] : $default; } /** * Sets a parameter by name. * * @param string $key The key * @param mixed $value The value */ public function set($key, $value) { $this->parameters[$key] = $value; } /** * Returns true if the parameter is defined. * * @param string $key The key * * @return Boolean true if the parameter exists, false otherwise */ public function has($key) { return array_key_exists($key, $this->parameters); } /** * Deletes a parameter. * * @param string $key The key */ public function delete($key) { unset($this->parameters[$key]); } /** * Returns the alphabetic characters of the parameter value. * * @param string $key The parameter key * @param mixed $default The default value * * @return string The filtered value */ public function getAlpha($key, $default = '') { return preg_replace('/[^[:alpha:]]/', '', $this->get($key, $default)); } /** * Returns the alphabetic characters and digits of the parameter value. * * @param string $key The parameter key * @param mixed $default The default value * * @return string The filtered value */ public function getAlnum($key, $default = '') { return preg_replace('/[^[:alnum:]]/', '', $this->get($key, $default)); } /** * Returns the digits of the parameter value. * * @param string $key The parameter key * @param mixed $default The default value * * @return string The filtered value */ public function getDigits($key, $default = '') { return preg_replace('/[^[:digit:]]/', '', $this->get($key, $default)); } /** * Returns the parameter value converted to integer. * * @param string $key The parameter key * @param mixed $default The default value * * @return string The filtered value */ public function getInt($key, $default = 0) { return (int) $this->get($key, $default); } }