| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- <?php
- /**
- * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- *
- * Licensed under The MIT License
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- * @link http://cakephp.org CakePHP(tm) Project
- * @since 3.5.0
- * @license http://www.opensource.org/licenses/mit-license.php MIT License
- */
- namespace Cake\Http\Cookie;
- /**
- * Cookie Interface
- *
- * @method string|null getSameSite()
- * @method static withSameSite($sameSite = null)
- */
- interface CookieInterface
- {
- /**
- * Expires attribute format.
- *
- * @var string
- */
- const EXPIRES_FORMAT = 'D, d-M-Y H:i:s T';
- /**
- * SameSite attribute value: Lax
- *
- * @var string
- */
- const SAMESITE_LAX = 'Lax';
- /**
- * SameSite attribute value: Strict
- *
- * @var string
- */
- const SAMESITE_STRICT = 'Strict';
- /**
- * SameSite attribute value: None
- *
- * @var string
- */
- const SAMESITE_NONE = 'None';
- /**
- * Valid values for "SameSite" attribute.
- *
- * @var string[]
- */
- const SAMESITE_VALUES = [
- self::SAMESITE_LAX,
- self::SAMESITE_STRICT,
- self::SAMESITE_NONE,
- ];
- /**
- * Sets the cookie name
- *
- * @param string $name Name of the cookie
- * @return static
- */
- public function withName($name);
- /**
- * Gets the cookie name
- *
- * @return string
- */
- public function getName();
- /**
- * Gets the cookie value
- *
- * @return string|array
- */
- public function getValue();
- /**
- * Gets the cookie value as a string.
- *
- * This will collapse any complex data in the cookie with json_encode()
- *
- * @return string
- */
- public function getStringValue();
- /**
- * Create a cookie with an updated value.
- *
- * @param string|array $value Value of the cookie to set
- * @return static
- */
- 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 \DateTime|\DateTimeImmutable|null Timestamp of expiry or null
- */
- public function getExpiry();
- /**
- * Get the timestamp from the expiration time
- *
- * Timestamps are strings as large timestamps can overflow MAX_INT
- * in 32bit systems.
- *
- * @return string|null The expiry time as a string timestamp.
- */
- public function getExpiresTimestamp();
- /**
- * Builds the expiration value part of the header string
- *
- * @return string
- */
- public function getFormattedExpires();
- /**
- * Create a cookie with an updated expiration date
- *
- * @param \DateTime|\DateTimeImmutable $dateTime Date time object
- * @return static
- */
- public function withExpiry($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 \DateTime|\DateTimeImmutable $time The time to test against. Defaults to 'now' in UTC.
- * @return bool
- */
- public function isExpired($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
- *
- * @return string
- */
- public function toHeaderValue();
- }
|