You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
263 lines
6.4 KiB
263 lines
6.4 KiB
<?php
|
|
|
|
// +---------------------------------------------------------------------------+
|
|
// | This file is part of the core package. |
|
|
// | Copyright (c) laiketui.com |
|
|
// | |
|
|
// | For the full copyright and license information, please view the LICENSE |
|
|
// | file that was distributed with this source code. You can also view the |
|
|
// | LICENSE file online at http://www.laiketui.com |
|
|
// +---------------------------------------------------------------------------+
|
|
|
|
/**
|
|
* ParameterHolder provides a base class for managing parameters.
|
|
*
|
|
* @package laiketui
|
|
* @subpackage util
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
abstract class ParameterHolder
|
|
{
|
|
|
|
// +-----------------------------------------------------------------------+
|
|
// | PROTECTED DATA |
|
|
// +-----------------------------------------------------------------------+
|
|
|
|
protected
|
|
$parameters = array();
|
|
|
|
// +-----------------------------------------------------------------------+
|
|
// | METHODS |
|
|
// +-----------------------------------------------------------------------+
|
|
|
|
/**
|
|
* Clear all parameters associated with this request.
|
|
*
|
|
* @return void
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function clearParameters ()
|
|
{
|
|
|
|
$this->parameters = null;
|
|
$this->parameters = array();
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Retrieve a parameter.
|
|
*
|
|
* @param string A parameter name.
|
|
* @param mixed A default parameter value.
|
|
*
|
|
* @return mixed A parameter value, if the parameter exists, otherwise
|
|
* null.
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function & getParameter ($name, $default = null)
|
|
{
|
|
|
|
$retval =& $default;
|
|
|
|
if (isset($this->parameters[$name]))
|
|
{
|
|
|
|
$retval = $this->parameters[$name];
|
|
|
|
}
|
|
|
|
return $retval;
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Retrieve an array of parameter names.
|
|
*
|
|
* @return array An indexed array of parameter names.
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function getParameterNames ()
|
|
{
|
|
|
|
return array_keys($this->parameters);
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Retrieve an array of parameters.
|
|
*
|
|
* @return array An associative array of parameters.
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function & getParameters ()
|
|
{
|
|
|
|
return $this->parameters;
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Indicates whether or not a parameter exists.
|
|
*
|
|
* @param string A parameter name.
|
|
*
|
|
* @return bool true, if the parameter exists, otherwise false.
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function hasParameter ($name)
|
|
{
|
|
|
|
return isset($this->parameters[$name]);
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Remove a parameter.
|
|
*
|
|
* @param string A parameter name.
|
|
*
|
|
* @return string A parameter value, if the parameter was removed,
|
|
* otherwise null.
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function & removeParameter ($name)
|
|
{
|
|
|
|
$retval = null;
|
|
|
|
if (isset($this->parameters[$name]))
|
|
{
|
|
|
|
$retval =& $this->parameters[$name];
|
|
|
|
unset($this->parameters[$name]);
|
|
|
|
}
|
|
|
|
return $retval;
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Set a parameter.
|
|
*
|
|
* If a parameter with the name already exists the value will be overridden.
|
|
*
|
|
* @param string A parameter name.
|
|
* @param mixed A parameter value.
|
|
*
|
|
* @return void
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function setParameter ($name, $value)
|
|
{
|
|
|
|
$this->parameters[$name] = $value;
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Set a parameter by reference.
|
|
*
|
|
* If a parameter with the name already exists the value will be
|
|
* overridden.
|
|
*
|
|
* @param string A parameter name.
|
|
* @param mixed A reference to a parameter value.
|
|
*
|
|
* @return void
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function setParameterByRef ($name, $value)
|
|
{
|
|
|
|
$this->parameters[$name] =& $value;
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Set an array of parameters.
|
|
*
|
|
* If an existing parameter name matches any of the keys in the supplied
|
|
* array, the associated value will be overridden.
|
|
*
|
|
* @param array An associative array of parameters and their associated
|
|
* values.
|
|
*
|
|
* @return void
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function setParameters ($parameters)
|
|
{
|
|
|
|
$this->parameters = array_merge($this->parameters, $parameters);
|
|
|
|
}
|
|
|
|
// -------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Set an array of parameters by reference.
|
|
*
|
|
* If an existing parameter name matches any of the keys in the supplied
|
|
* array, the associated value will be overridden.
|
|
*
|
|
* @param array An associative array of parameters and references to their
|
|
* associated values.
|
|
*
|
|
* @return void
|
|
*
|
|
* @author ketter (ketter@laiketui.com)
|
|
* @since 3.0.0
|
|
*/
|
|
public function setParametersByRef (&$parameters)
|
|
{
|
|
|
|
foreach ($parameters as $key => &$value)
|
|
{
|
|
|
|
$this->parameters[$key] =& $value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|