-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Serban Ghita <[email protected]>
- Loading branch information
1 parent
a66726c
commit d6a4938
Showing
8 changed files
with
356 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Changelog | ||
|
||
All notable changes to this project will be documented in this file, in reverse chronological order by release. | ||
|
||
## [3.0.0](https://github.com/php-fig/cache/compare/2.0.0...3.0.0) - 2021-02-04 | ||
|
||
### Changed | ||
|
||
- **BREAKING** All methods have return types | ||
|
||
## [2.0.0](https://github.com/php-fig/cache/compare/1.0.1...2.0.0) - 2021-02-04 | ||
|
||
### Changed | ||
|
||
- **BREAKING** The `CacheItemInterface::expiresAt()` method’s `$expiration` parameter is typehinted with `DateTimeInterface`, see [this explanation](https://www.php-fig.org/psr/psr-6/meta/#82-type-additions) | ||
- All methods have typed parameters | ||
- `Psr\Cache\CacheException` extends `Throwable` | ||
- Bump required PHP version to 8.0 | ||
|
||
## [1.0.1](https://github.com/php-fig/cache/compare/1.0.0...1.0.1) - 2016-08-06 | ||
|
||
### Fixed | ||
|
||
- Make spacing consistent in phpdoc annotations php-fig/cache#9 - chalasr | ||
- Fix grammar in phpdoc annotations php-fig/cache#10 - chalasr | ||
- Be more specific in docblocks that `getItems()` and `deleteItems()` take an array of strings (`string[]`) compared to just `array` php-fig/cache#8 - GrahamCampbell | ||
- For `expiresAt()` and `expiresAfter()` in CacheItemInterface fix docblock to specify null as a valid parameters as well as an implementation of DateTimeInterface php-fig/cache#7 - GrahamCampbell | ||
|
||
## 1.0.0 - 2015-12-11 | ||
|
||
Initial stable release; reflects accepted PSR-6 specification |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
Copyright (c) 2015 PHP Framework Interoperability Group | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
Caching Interface | ||
============== | ||
|
||
This repository holds all interfaces related to [PSR-6 (Caching Interface)][psr-url]. | ||
|
||
Note that this is not a Caching implementation of its own. It is merely interfaces that describe the components of a Caching mechanism. | ||
|
||
The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. | ||
|
||
[psr-url]: https://www.php-fig.org/psr/psr-6/ | ||
[package-url]: https://packagist.org/packages/psr/cache | ||
[implementation-url]: https://packagist.org/providers/psr/cache-implementation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
{ | ||
"name": "psr/cache", | ||
"description": "Common interface for caching libraries", | ||
"keywords": ["psr", "psr-6", "cache"], | ||
"license": "MIT", | ||
"authors": [ | ||
{ | ||
"name": "PHP-FIG", | ||
"homepage": "https://www.php-fig.org/" | ||
} | ||
], | ||
"require": { | ||
"php": ">=8.0.0" | ||
}, | ||
"autoload": { | ||
"psr-4": { | ||
"Psr\\Cache\\": "src/" | ||
} | ||
}, | ||
"suggest": { | ||
"fig/cache-util": "Provides some useful PSR-6 utilities" | ||
}, | ||
"extra": { | ||
"branch-alias": { | ||
"dev-master": "3.0.x-dev" | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<?php | ||
|
||
namespace Psr\Cache; | ||
|
||
/** | ||
* Exception interface for all exceptions thrown by an Implementing Library. | ||
*/ | ||
interface CacheException extends \Throwable | ||
{ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
<?php | ||
|
||
namespace Psr\Cache; | ||
|
||
/** | ||
* CacheItemInterface defines an interface for interacting with objects inside a cache. | ||
* | ||
* Each Item object MUST be associated with a specific key, which can be set | ||
* according to the implementing system and is typically passed by the | ||
* Cache\CacheItemPoolInterface object. | ||
* | ||
* The Cache\CacheItemInterface object encapsulates the storage and retrieval of | ||
* cache items. Each Cache\CacheItemInterface is generated by a | ||
* Cache\CacheItemPoolInterface object, which is responsible for any required | ||
* setup as well as associating the object with a unique Key. | ||
* Cache\CacheItemInterface objects MUST be able to store and retrieve any type | ||
* of PHP value defined in the Data section of the specification. | ||
* | ||
* Calling Libraries MUST NOT instantiate Item objects themselves. They may only | ||
* be requested from a Pool object via the getItem() method. Calling Libraries | ||
* SHOULD NOT assume that an Item created by one Implementing Library is | ||
* compatible with a Pool from another Implementing Library. | ||
*/ | ||
interface CacheItemInterface | ||
{ | ||
/** | ||
* Returns the key for the current cache item. | ||
* | ||
* The key is loaded by the Implementing Library, but should be available to | ||
* the higher level callers when needed. | ||
* | ||
* @return string | ||
* The key string for this cache item. | ||
*/ | ||
public function getKey(): string; | ||
|
||
/** | ||
* Retrieves the value of the item from the cache associated with this object's key. | ||
* | ||
* The value returned must be identical to the value originally stored by set(). | ||
* | ||
* If isHit() returns false, this method MUST return null. Note that null | ||
* is a legitimate cached value, so the isHit() method SHOULD be used to | ||
* differentiate between "null value was found" and "no value was found." | ||
* | ||
* @return mixed | ||
* The value corresponding to this cache item's key, or null if not found. | ||
*/ | ||
public function get(): mixed; | ||
|
||
/** | ||
* Confirms if the cache item lookup resulted in a cache hit. | ||
* | ||
* Note: This method MUST NOT have a race condition between calling isHit() | ||
* and calling get(). | ||
* | ||
* @return bool | ||
* True if the request resulted in a cache hit. False otherwise. | ||
*/ | ||
public function isHit(): bool; | ||
|
||
/** | ||
* Sets the value represented by this cache item. | ||
* | ||
* The $value argument may be any item that can be serialized by PHP, | ||
* although the method of serialization is left up to the Implementing | ||
* Library. | ||
* | ||
* @param mixed $value | ||
* The serializable value to be stored. | ||
* | ||
* @return static | ||
* The invoked object. | ||
*/ | ||
public function set(mixed $value): static; | ||
|
||
/** | ||
* Sets the absolute expiration time for this cache item. | ||
* | ||
* @param \DateTimeInterface|null $expiration | ||
* The point in time after which the item MUST be considered expired. | ||
* If null is passed explicitly, a default value MAY be used. If none is set, | ||
* the value should be stored permanently or for as long as the | ||
* implementation allows. | ||
* | ||
* @return static | ||
* The called object. | ||
*/ | ||
public function expiresAt(?\DateTimeInterface $expiration): static; | ||
|
||
/** | ||
* Sets the relative expiration time for this cache item. | ||
* | ||
* @param int|\DateInterval|null $time | ||
* The period of time from the present after which the item MUST be considered | ||
* expired. An integer parameter is understood to be the time in seconds until | ||
* expiration. If null is passed explicitly, a default value MAY be used. | ||
* If none is set, the value should be stored permanently or for as long as the | ||
* implementation allows. | ||
* | ||
* @return static | ||
* The called object. | ||
*/ | ||
public function expiresAfter(int|\DateInterval|null $time): static; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
<?php | ||
|
||
namespace Psr\Cache; | ||
|
||
/** | ||
* CacheItemPoolInterface generates CacheItemInterface objects. | ||
* | ||
* The primary purpose of Cache\CacheItemPoolInterface is to accept a key from | ||
* the Calling Library and return the associated Cache\CacheItemInterface object. | ||
* It is also the primary point of interaction with the entire cache collection. | ||
* All configuration and initialization of the Pool is left up to an | ||
* Implementing Library. | ||
*/ | ||
interface CacheItemPoolInterface | ||
{ | ||
/** | ||
* Returns a Cache Item representing the specified key. | ||
* | ||
* This method must always return a CacheItemInterface object, even in case of | ||
* a cache miss. It MUST NOT return null. | ||
* | ||
* @param string $key | ||
* The key for which to return the corresponding Cache Item. | ||
* | ||
* @throws InvalidArgumentException | ||
* If the $key string is not a legal value a \Psr\Cache\InvalidArgumentException | ||
* MUST be thrown. | ||
* | ||
* @return CacheItemInterface | ||
* The corresponding Cache Item. | ||
*/ | ||
public function getItem(string $key): CacheItemInterface; | ||
|
||
/** | ||
* Returns a traversable set of cache items. | ||
* | ||
* @param string[] $keys | ||
* An indexed array of keys of items to retrieve. | ||
* | ||
* @throws InvalidArgumentException | ||
* If any of the keys in $keys are not a legal value a \Psr\Cache\InvalidArgumentException | ||
* MUST be thrown. | ||
* | ||
* @return iterable | ||
* An iterable collection of Cache Items keyed by the cache keys of | ||
* each item. A Cache item will be returned for each key, even if that | ||
* key is not found. However, if no keys are specified then an empty | ||
* traversable MUST be returned instead. | ||
*/ | ||
public function getItems(array $keys = []): iterable; | ||
|
||
/** | ||
* Confirms if the cache contains specified cache item. | ||
* | ||
* Note: This method MAY avoid retrieving the cached value for performance reasons. | ||
* This could result in a race condition with CacheItemInterface::get(). To avoid | ||
* such situation use CacheItemInterface::isHit() instead. | ||
* | ||
* @param string $key | ||
* The key for which to check existence. | ||
* | ||
* @throws InvalidArgumentException | ||
* If the $key string is not a legal value a \Psr\Cache\InvalidArgumentException | ||
* MUST be thrown. | ||
* | ||
* @return bool | ||
* True if item exists in the cache, false otherwise. | ||
*/ | ||
public function hasItem(string $key): bool; | ||
|
||
/** | ||
* Deletes all items in the pool. | ||
* | ||
* @return bool | ||
* True if the pool was successfully cleared. False if there was an error. | ||
*/ | ||
public function clear(): bool; | ||
|
||
/** | ||
* Removes the item from the pool. | ||
* | ||
* @param string $key | ||
* The key to delete. | ||
* | ||
* @throws InvalidArgumentException | ||
* If the $key string is not a legal value a \Psr\Cache\InvalidArgumentException | ||
* MUST be thrown. | ||
* | ||
* @return bool | ||
* True if the item was successfully removed. False if there was an error. | ||
*/ | ||
public function deleteItem(string $key): bool; | ||
|
||
/** | ||
* Removes multiple items from the pool. | ||
* | ||
* @param string[] $keys | ||
* An array of keys that should be removed from the pool. | ||
* | ||
* @throws InvalidArgumentException | ||
* If any of the keys in $keys are not a legal value a \Psr\Cache\InvalidArgumentException | ||
* MUST be thrown. | ||
* | ||
* @return bool | ||
* True if the items were successfully removed. False if there was an error. | ||
*/ | ||
public function deleteItems(array $keys): bool; | ||
|
||
/** | ||
* Persists a cache item immediately. | ||
* | ||
* @param CacheItemInterface $item | ||
* The cache item to save. | ||
* | ||
* @return bool | ||
* True if the item was successfully persisted. False if there was an error. | ||
*/ | ||
public function save(CacheItemInterface $item): bool; | ||
|
||
/** | ||
* Sets a cache item to be persisted later. | ||
* | ||
* @param CacheItemInterface $item | ||
* The cache item to save. | ||
* | ||
* @return bool | ||
* False if the item could not be queued or if a commit was attempted and failed. True otherwise. | ||
*/ | ||
public function saveDeferred(CacheItemInterface $item): bool; | ||
|
||
/** | ||
* Persists any deferred cache items. | ||
* | ||
* @return bool | ||
* True if all not-yet-saved items were successfully saved or there were none. False otherwise. | ||
*/ | ||
public function commit(): bool; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<?php | ||
|
||
namespace Psr\Cache; | ||
|
||
/** | ||
* Exception interface for invalid cache arguments. | ||
* | ||
* Any time an invalid argument is passed into a method it must throw an | ||
* exception class which implements Psr\Cache\InvalidArgumentException. | ||
*/ | ||
interface InvalidArgumentException extends CacheException | ||
{ | ||
} |