Skip to content

Commit

Permalink
Added most commonly used cookie methods to the CookieInterface.
Browse files Browse the repository at this point in the history
  • Loading branch information
Robert Pustułka committed Apr 12, 2017
1 parent ff21449 commit 6777ce1
Show file tree
Hide file tree
Showing 2 changed files with 113 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/Http/Cookie/CookieCollection.php
Expand Up @@ -36,7 +36,7 @@ class CookieCollection implements IteratorAggregate, Countable
/**
* Cookie objects
*
* @var Cookie[]
* @var \Cake\Http\Cookie\CookieInterface[]
*/
protected $cookies = [];

Expand Down
112 changes: 112 additions & 0 deletions src/Http/Cookie/CookieInterface.php
Expand Up @@ -13,6 +13,8 @@
*/
namespace Cake\Http\Cookie;

use DateTimeInterface;

/**
* Cookie Interface
*/
Expand Down Expand Up @@ -48,6 +50,116 @@ public function getValue();
*/
public function withValue($value);

/**
* Get the id for a cookie
*
* Cookies are unique across name, domain, path tuples.
*
* @return string
*/
public function getId();

/**
* Get the path attribute.
*
* @return string
*/
public function getPath();

/**
* Create a new cookie with an updated path
*
* @param string $path Sets the path
* @return static
*/
public function withPath($path);

/**
* Get the domain attribute.
*
* @return string
*/
public function getDomain();

/**
* Create a cookie with an updated domain
*
* @param string $domain Domain to set
* @return static
*/
public function withDomain($domain);

/**
* Get the current expiry time
*
* @return DateTimeInterface|null Timestamp of expiry or null
*/
public function getExpiry();

/**
* Create a cookie with an updated expiration date
*
* @param DateTimeInterface $dateTime Date time object
* @return static
*/
public function withExpiry(DateTimeInterface $dateTime);

/**
* Create a new cookie that will virtually never expire.
*
* @return static
*/
public function withNeverExpire();

/**
* Create a new cookie that will expire/delete the cookie from the browser.
*
* This is done by setting the expiration time to 1 year ago
*
* @return static
*/
public function withExpired();

/**
* Check if a cookie is expired when compared to $time
*
* Cookies without an expiration date always return false.
*
* @param \DatetimeInterface $time The time to test against. Defaults to 'now' in UTC.
* @return bool
*/
public function isExpired(DatetimeInterface $time = null);

/**
* Check if the cookie is HTTP only
*
* @return bool
*/
public function isHttpOnly();

/**
* Create a cookie with HTTP Only updated
*
* @param bool $httpOnly HTTP Only
* @return static
*/
public function withHttpOnly($httpOnly);

/**
* Check if the cookie is secure
*
* @return bool
*/
public function isSecure();

/**
* Create a cookie with Secure updated
*
* @param bool $secure Secure attribute value
* @return static
*/
public function withSecure($secure);

/**
* Returns the cookie as header value
*
Expand Down

0 comments on commit 6777ce1

Please sign in to comment.