| | <?php |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | namespace Eluceo\iCal; |
| |
|
| | class ParameterBag |
| | { |
| | |
| | |
| | |
| | |
| | |
| | protected $params; |
| |
|
| | public function __construct($params = []) |
| | { |
| | $this->params = $params; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | public function setParam($name, $value) |
| | { |
| | $this->params[$name] = $value; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | public function getParam($name) |
| | { |
| | if (isset($this->params[$name])) { |
| | return $this->params[$name]; |
| | } |
| |
|
| | return null; |
| | } |
| |
|
| | |
| | |
| | |
| | public function hasParams(): bool |
| | { |
| | return count($this->params) > 0; |
| | } |
| |
|
| | public function toString(): string |
| | { |
| | $line = ''; |
| | foreach ($this->params as $param => $paramValues) { |
| | if (!is_array($paramValues)) { |
| | $paramValues = [$paramValues]; |
| | } |
| | foreach ($paramValues as $k => $v) { |
| | $paramValues[$k] = $this->escapeParamValue($v); |
| | } |
| |
|
| | if ('' != $line) { |
| | $line .= ';'; |
| | } |
| |
|
| | $line .= $param . '=' . implode(',', $paramValues); |
| | } |
| |
|
| | return $line; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | private function escapeParamValue($value) |
| | { |
| | $count = 0; |
| | $value = str_replace('\\', '\\\\', $value); |
| | $value = str_replace('"', '\"', $value, $count); |
| | $value = str_replace("\n", '\\n', $value); |
| | if (false !== strpos($value, ';') || false !== strpos($value, ',') || false !== strpos($value, ':') || $count) { |
| | $value = '"' . $value . '"'; |
| | } |
| |
|
| | return $value; |
| | } |
| |
|
| | |
| | |
| | |
| | public function __toString() |
| | { |
| | return $this->toString(); |
| | } |
| | } |
| |
|