diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2015-12-17 09:15:42 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2015-12-17 09:44:51 +0100 |
commit | a1789ddde42033f1b05cc4929491214ee6e79383 (patch) | |
tree | 63615735c4ddffaaabf2428946bb26f90899f7bf /vendor/ruflin/elastica/lib/Elastica/Param.php | |
parent | 9e06a62f265e3a2aaabecc598d4bc617e06fa32d (diff) |
Update to MediaWiki 1.26.0
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica/Param.php')
-rw-r--r-- | vendor/ruflin/elastica/lib/Elastica/Param.php | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/vendor/ruflin/elastica/lib/Elastica/Param.php b/vendor/ruflin/elastica/lib/Elastica/Param.php new file mode 100644 index 00000000..484fbbc3 --- /dev/null +++ b/vendor/ruflin/elastica/lib/Elastica/Param.php @@ -0,0 +1,167 @@ +<?php +namespace Elastica; + +use Elastica\Exception\InvalidException; + +/** + * Class to handle params. + * + * This function can be used to handle params for queries, filter, facets + * + * @author Nicolas Ruflin <spam@ruflin.com> + */ +class Param +{ + /** + * Params. + * + * @var array + */ + protected $_params = array(); + + /** + * Raw Params. + * + * @var array + */ + protected $_rawParams = array(); + + /** + * Converts the params to an array. A default implementation exist to create + * the an array out of the class name (last part of the class name) + * and the params. + * + * @return array Filter array + */ + public function toArray() + { + $data = array($this->_getBaseName() => $this->getParams()); + + if (!empty($this->_rawParams)) { + $data = array_merge($data, $this->_rawParams); + } + + return $data; + } + + /** + * Param's name + * Picks the last part of the class name and makes it snake_case + * You can override this method if you want to change the name. + * + * @return string name + */ + protected function _getBaseName() + { + return Util::getParamName($this); + } + + /** + * Sets params not inside params array. + * + * @param string $key + * @param mixed $value + * + * @return $this + */ + protected function _setRawParam($key, $value) + { + $this->_rawParams[$key] = $value; + + return $this; + } + + /** + * Sets (overwrites) the value at the given key. + * + * @param string $key Key to set + * @param mixed $value Key Value + * + * @return $this + */ + public function setParam($key, $value) + { + $this->_params[$key] = $value; + + return $this; + } + + /** + * Sets (overwrites) all params of this object. + * + * @param array $params Parameter list + * + * @return $this + */ + public function setParams(array $params) + { + $this->_params = $params; + + return $this; + } + + /** + * Adds a param to the list. + * + * This function can be used to add an array of params + * + * @param string $key Param key + * @param mixed $value Value to set + * + * @return $this + */ + public function addParam($key, $value) + { + if ($key != null) { + if (!isset($this->_params[$key])) { + $this->_params[$key] = array(); + } + + $this->_params[$key][] = $value; + } else { + $this->_params = $value; + } + + return $this; + } + + /** + * Returns a specific param. + * + * @param string $key Key to return + * + * @throws \Elastica\Exception\InvalidException If requested key is not set + * + * @return mixed Key value + */ + public function getParam($key) + { + if (!$this->hasParam($key)) { + throw new InvalidException('Param '.$key.' does not exist'); + } + + return $this->_params[$key]; + } + + /** + * Test if a param is set. + * + * @param string $key Key to test + * + * @return bool True if the param is set, false otherwise + */ + public function hasParam($key) + { + return isset($this->_params[$key]); + } + + /** + * Returns the params array. + * + * @return array Params + */ + public function getParams() + { + return $this->_params; + } +} |