diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:39:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:39:39 +0000 |
commit | 8ca6cc32b2c789a3149861159ad258f2cb9491e3 (patch) | |
tree | 2492de6f1528dd44eaa169a5c1555026d9cb75ec /library/Icinga/Web/CookieSet.php | |
parent | Initial commit. (diff) | |
download | icingaweb2-a598b28402ead15d3701df32e198513e7b1f299c.tar.xz icingaweb2-a598b28402ead15d3701df32e198513e7b1f299c.zip |
Adding upstream version 2.11.4.upstream/2.11.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | library/Icinga/Web/CookieSet.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/library/Icinga/Web/CookieSet.php b/library/Icinga/Web/CookieSet.php new file mode 100644 index 0000000..019be29 --- /dev/null +++ b/library/Icinga/Web/CookieSet.php @@ -0,0 +1,58 @@ +<?php +/* Icinga Web 2 | (c) 2015 Icinga Development Team | GPLv2+ */ + +namespace Icinga\Web; + +use ArrayIterator; +use IteratorAggregate; +use Traversable; + +/** + * Maintain a set of cookies + */ +class CookieSet implements IteratorAggregate +{ + /** + * Cookies in this set indexed by the cookie names + * + * @var Cookie[] + */ + protected $cookies = array(); + + /** + * Get an iterator for traversing the cookies in this set + * + * @return ArrayIterator An iterator for traversing the cookies in this set + */ + public function getIterator(): Traversable + { + return new ArrayIterator($this->cookies); + } + + /** + * Add a cookie to the set + * + * If a cookie with the same name already exists, the cookie will be overridden. + * + * @param Cookie $cookie The cookie to add + * + * @return $this + */ + public function add(Cookie $cookie) + { + $this->cookies[$cookie->getName()] = $cookie; + return $this; + } + + /** + * Get the cookie with the given name from the set + * + * @param string $name The name of the cookie + * + * @return Cookie|null The cookie with the given name or null if the cookie does not exist + */ + public function get($name) + { + return isset($this->cookies[$name]) ? $this->cookies[$name] : null; + } +} |