/** * Parameters setter. * * @param string $key the parameter name to set, if NULL all the parameters array wil be set * @param mixed $value the parameter value or all the parameters if $key is NULL * * @return AbstractClassContent */ public function setParam($key, $value = null) { return null !== $this->getDraft() ? $this->getDraft()->setParam($key, $value) : parent::setParam($key, $value); }
/** * Parameters setter. * * @param string $key the parameter name to set, if NULL all the parameters array wil be set * @param mixed $value the parameter value or all the parameters if $key is NULL * * @return AbstractClassContent */ public function setParam($key, $value = null) { if (!isset($this->defaultParams[$key])) { throw new \InvalidArgumentException("Cannot set {$key} as parameter cause this key does not exist."); } if (is_object($value)) { throw new \InvalidArgumentException('Parameter\'s value cannot be type of object.'); } $currentValue = $this->getParamValue($key); if (null !== $value && null !== $currentValue && (gettype($value) !== gettype($currentValue) && (!(is_string($value) || is_integer($value)) || !(is_string($currentValue) || is_integer($currentValue))))) { throw new \InvalidArgumentException(sprintf('Cannot replace %s\'s value, %s expected and %s given.', $key, gettype($currentValue), gettype($value))); } return null !== $this->getDraft() ? $this->getDraft()->setParam($key, $value) : parent::setParam($key, $value); }