@@ -137,7 +137,7 @@ <h3 class="off-canvas-menu__section-header">Network Components</h3>
137137 DNS
138138
139139 < span class ="off-canvas-menu__version ">
140- v1.13 .0
140+ v1.14 .0
141141 </ span >
142142 </ a >
143143 </ li >
@@ -224,14 +224,6 @@ <h1>Cache</h1>
224224< a href ="https://packagist.org/packages/react/cache " rel ="nofollow "> < img src ="https://camo.githubusercontent.com/c7f8bd9a3e6ae4ea8063f5c03d1dd93dd4523c90c31f6ed8e61e78efc0a7e2c9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f72656163742f63616368653f636f6c6f723d626c7565266c6162656c3d696e7374616c6c732532306f6e2532305061636b6167697374 " alt ="installs on Packagist " data-canonical-src ="https://img.shields.io/packagist/dt/react/cache?color=blue&label=installs%20on%20Packagist " style ="max-width: 100%; "> </ a > </ p >
225225< p > Async, < a href ="../promise/ "> Promise</ a > -based cache interface
226226for < a href ="https://reactphp.org/ " rel ="nofollow "> ReactPHP</ a > .</ p >
227- < blockquote >
228- < p > < strong > Development version:</ strong > This branch contains the code for the upcoming v3
229- release. For the code of the current stable v1 release, check out the
230- < a href ="https://github.com/reactphp/cache/tree/1.x "> < code > 1.x</ code > branch</ a > .</ p >
231- < p > The upcoming v3 release will be the way forward for this package. However,
232- we will still actively support v1 for those not yet on the latest version.
233- See also < a href ="#install "> installation instructions</ a > for more details.</ p >
234- </ blockquote >
235227< p > The cache component provides a
236228< a href ="../promise/ "> Promise</ a > -based
237229< a href ="#cacheinterface "> < code > CacheInterface</ code > </ a > and an in-memory < a href ="#arraycache "> < code > ArrayCache</ code > </ a >
@@ -334,24 +326,23 @@ <h1>Cache</h1>
334326< code > set()</ code > , this may not happen instantly and a promise is returned to
335327provide guarantees whether or not the item has been removed from cache.</ p >
336328< div class ="markdown-heading "> < h4 class ="heading-element "> getMultiple()</ h4 > < a id ="getmultiple " class ="anchor " aria-label ="Permalink: getMultiple() " href ="#getmultiple "> < span aria-hidden ="true " class ="octicon octicon-link "> </ span > </ a > </ div >
337- < p > The < code > getMultiple(iterable< string> $keys, mixed $default = null): PromiseInterface<iterable<string,mixed> ></ code > method can be used to
329+ < p > The < code > getMultiple(string[] $keys, mixed $default = null): PromiseInterface<array ></ code > method can be used to
338330retrieve multiple cache items by their unique keys.</ p >
339331< p > This method will resolve with an array of cached values on success or with the
340332given < code > $default</ code > value when an item can not be found or when an error occurs.
341333Similarly, an expired cache item (once the time-to-live is expired) is
342334considered a cache miss.</ p >
343- < div class ="highlight highlight-text-html-php "> < pre > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > cache</ span > ->< span class ="pl-en "> getMultiple</ span > ([< span class ="pl-s "> '< span class ="pl-s "> name</ span > '</ span > , < span class ="pl-s "> '< span class ="pl-s "> age</ span > '</ span > ])->< span class ="pl-en "> then</ span > (< span class ="pl-k "> function</ span > (< span class ="pl-smi "> iterable</ span > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > values</ span > ): < span class ="pl-smi "> void</ span > {
344- < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > array</ span > = < span class ="pl-en "> is_array</ span > (< span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > values</ span > ) ? < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > values</ span > : < span class ="pl-en "> iterator_to_array</ span > (< span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > values</ span > );
345- < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > name</ span > = < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > array</ span > [< span class ="pl-s "> '< span class ="pl-s "> name</ span > '</ span > ] ?? < span class ="pl-s "> '< span class ="pl-s "> User</ span > '</ span > ;
346- < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > age</ span > = < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > array</ span > [< span class ="pl-s "> '< span class ="pl-s "> age</ span > '</ span > ] ?? < span class ="pl-s "> '< span class ="pl-s "> n/a</ span > '</ span > ;
335+ < div class ="highlight highlight-text-html-php "> < pre > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > cache</ span > ->< span class ="pl-en "> getMultiple</ span > (< span class ="pl-en "> array</ span > (< span class ="pl-s "> '< span class ="pl-s "> name</ span > '</ span > , < span class ="pl-s "> '< span class ="pl-s "> age</ span > '</ span > ))->< span class ="pl-en "> then</ span > (< span class ="pl-k "> function</ span > (< span class ="pl-smi "> array</ span > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > values</ span > ) {
336+ < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > name</ span > = < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > values</ span > [< span class ="pl-s "> '< span class ="pl-s "> name</ span > '</ span > ] ?? < span class ="pl-s "> '< span class ="pl-s "> User</ span > '</ span > ;
337+ < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > age</ span > = < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > values</ span > [< span class ="pl-s "> '< span class ="pl-s "> age</ span > '</ span > ] ?? < span class ="pl-s "> '< span class ="pl-s "> n/a</ span > '</ span > ;
347338
348339 < span class ="pl-k "> echo</ span > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > name</ span > . < span class ="pl-s "> '< span class ="pl-s "> is </ span > '</ span > . < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > age</ span > . < span class ="pl-c1 "> PHP_EOL</ span > ;
349340});</ pre > </ div >
350341< p > This example fetches the cache items for the < code > name</ code > and < code > age</ code > keys and
351342prints some example output. You can use any of the composition provided
352343by < a href ="../promise/ "> promises</ a > .</ p >
353344< div class ="markdown-heading "> < h4 class ="heading-element "> setMultiple()</ h4 > < a id ="setmultiple " class ="anchor " aria-label ="Permalink: setMultiple() " href ="#setmultiple "> < span aria-hidden ="true " class ="octicon octicon-link "> </ span > </ a > </ div >
354- < p > The < code > setMultiple(iterable<string,mixed> $values, ?float $ttl = null): PromiseInterface<bool></ code > method can be used to
345+ < p > The < code > setMultiple(array $values, ?float $ttl = null): PromiseInterface<bool></ code > method can be used to
355346persist a set of key => value pairs in the cache, with an optional TTL.</ p >
356347< p > This method will resolve with < code > true</ code > on success or < code > false</ code > when an error
357348occurs. If the cache implementation has to go over the network to store
@@ -361,17 +352,17 @@ <h1>Cache</h1>
361352will stay in the cache for as long as the underlying implementation
362353supports. Trying to access an expired cache items results in a cache miss,
363354see also < a href ="#getmultiple "> < code > getMultiple()</ code > </ a > .</ p >
364- < div class ="highlight highlight-text-html-php "> < pre > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > cache</ span > ->< span class ="pl-en "> setMultiple</ span > ([ < span class ="pl-s "> '< span class ="pl-s "> foo</ span > '</ span > => < span class ="pl-c1 "> 1</ span > , < span class ="pl-s "> '< span class ="pl-s "> bar</ span > '</ span > => < span class ="pl-c1 "> 2</ span > ] , < span class ="pl-c1 "> 60</ span > );</ pre > </ div >
355+ < div class ="highlight highlight-text-html-php "> < pre > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > cache</ span > ->< span class ="pl-en "> setMultiple</ span > (< span class ="pl-en " > array </ span > ( < span class =" pl- s "> '< span class ="pl-s "> foo</ span > '</ span > => < span class ="pl-c1 "> 1</ span > , < span class ="pl-s "> '< span class ="pl-s "> bar</ span > '</ span > => < span class ="pl-c1 "> 2</ span > ) , < span class ="pl-c1 "> 60</ span > );</ pre > </ div >
365356< p > This example eventually sets the list of values - the key < code > foo</ code > to < code > 1</ code > value
366357and the key < code > bar</ code > to < code > 2</ code > . If some of the keys already exist, they are overridden.</ p >
367358< div class ="markdown-heading "> < h4 class ="heading-element "> deleteMultiple()</ h4 > < a id ="deletemultiple " class ="anchor " aria-label ="Permalink: deleteMultiple() " href ="#deletemultiple "> < span aria-hidden ="true " class ="octicon octicon-link "> </ span > </ a > </ div >
368- < p > The < code > setMultiple(iterable< string> $keys): PromiseInterface<bool></ code > method can be used to
359+ < p > The < code > setMultiple(string[] $keys): PromiseInterface<bool></ code > method can be used to
369360delete multiple cache items in a single operation.</ p >
370361< p > This method will resolve with < code > true</ code > on success or < code > false</ code > when an error
371362occurs. When no items for < code > $keys</ code > are found in the cache, it also resolves
372363to < code > true</ code > . If the cache implementation has to go over the network to
373364delete it, it may take a while.</ p >
374- < div class ="highlight highlight-text-html-php "> < pre > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > cache</ span > ->< span class =" pl-en " > deleteMultiple</ span > ([ < span class ="pl-s "> '< span class ="pl-s "> foo</ span > '</ span > , < span class ="pl-s "> '< span class ="pl-s "> bar, </ span > '</ span > baz'] );</ pre > </ div >
365+ < div class ="highlight highlight-text-html-php "> < pre > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > cache</ span > ->deleteMultiple(array( < span class ="pl-s "> '< span class ="pl-s "> foo</ span > '</ span > , < span class ="pl-s "> '< span class ="pl-s "> bar, </ span > '</ span > baz') );</ pre > </ div >
375366< p > This example eventually deletes keys < code > foo</ code > , < code > bar</ code > and < code > baz</ code > from the cache.
376367As with < code > setMultiple()</ code > , this may not happen instantly and a promise is returned to
377368provide guarantees whether or not the item has been removed from cache.</ p >
@@ -466,7 +457,7 @@ <h1>Cache</h1>
466457{
467458 < span class ="pl-k "> return</ span > < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > < span class ="pl-smi "> this</ span > </ span > ->< span class ="pl-c1 "> db</ span >
468459 ->< span class ="pl-en "> get</ span > (< span class ="pl-s "> '< span class ="pl-s "> foo</ span > '</ span > )
469- ->< span class ="pl-en "> then</ span > ([ < span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > < span class ="pl-smi "> this</ span > </ span > , < span class ="pl-s "> '< span class ="pl-s "> cacheFooFromDb</ span > '</ span > ] );
460+ ->< span class ="pl-en "> then</ span > (< span class ="pl-en " > array </ span > ( < span class =" pl- s1 "> < span class ="pl-c1 "> $</ span > < span class ="pl-smi "> this</ span > </ span > , < span class ="pl-s "> '< span class ="pl-s "> cacheFooFromDb</ span > '</ span > ) );
470461}
471462
472463< span class ="pl-k "> public</ span > < span class ="pl-k "> function</ span > < span class ="pl-en "> cacheFooFromDb</ span > (< span class ="pl-s1 "> < span class ="pl-c1 "> $</ span > foo</ span > )
@@ -480,21 +471,20 @@ <h1>Cache</h1>
480471< div class ="markdown-heading "> < h2 class ="heading-element "> Install</ h2 > < a id ="install " class ="anchor " aria-label ="Permalink: Install " href ="#install "> < span aria-hidden ="true " class ="octicon octicon-link "> </ span > </ a > </ div >
481472< p > The recommended way to install this library is < a href ="https://getcomposer.org " rel ="nofollow "> through Composer</ a > .
482473< a href ="https://getcomposer.org/doc/00-intro.md " rel ="nofollow "> New to Composer?</ a > </ p >
483- < p > Once released, this project will follow < a href ="https://semver.org/ " rel ="nofollow "> SemVer</ a > .
484- At the moment, this will install the latest development version:</ p >
485- < div class ="highlight highlight-source-shell "> < pre > composer require react/cache:^3@dev </ pre > </ div >
474+ < p > This project follows < a href ="https://semver.org/ " rel ="nofollow "> SemVer</ a > .
475+ This will install the latest supported version:</ p >
476+ < div class ="highlight highlight-source-shell "> < pre > composer require react/cache:^1.2 </ pre > </ div >
486477< p > See also the < a href ="changelog.html "> CHANGELOG</ a > for details about version upgrades.</ p >
487478< p > This project aims to run on any platform and thus does not require any PHP
488- extensions and supports running on PHP 7.1 through current PHP 8+.
489- It's < em > highly recommended to use the latest supported PHP version</ em > for this project.</ p >
479+ extensions and supports running on legacy PHP 5.3 through current PHP 8+ and
480+ HHVM.
481+ It's < em > highly recommended to use PHP 7+</ em > for this project.</ p >
490482< div class ="markdown-heading "> < h2 class ="heading-element "> Tests</ h2 > < a id ="tests " class ="anchor " aria-label ="Permalink: Tests " href ="#tests "> < span aria-hidden ="true " class ="octicon octicon-link "> </ span > </ a > </ div >
491483< p > To run the test suite, you first need to clone this repo and then install all
492484dependencies < a href ="https://getcomposer.org " rel ="nofollow "> through Composer</ a > :</ p >
493485< div class ="highlight highlight-source-shell "> < pre > composer install</ pre > </ div >
494486< p > To run the test suite, go to the project root and run:</ p >
495487< div class ="highlight highlight-source-shell "> < pre > vendor/bin/phpunit</ pre > </ div >
496- < p > On top of this, we use PHPStan on max level to ensure type safety across the project:</ p >
497- < div class ="highlight highlight-source-shell "> < pre > vendor/bin/phpstan</ pre > </ div >
498488< div class ="markdown-heading "> < h2 class ="heading-element "> License</ h2 > < a id ="license " class ="anchor " aria-label ="Permalink: License " href ="#license "> < span aria-hidden ="true " class ="octicon octicon-link "> </ span > </ a > </ div >
499489< p > MIT, see < a href ="license.html "> LICENSE file</ a > .</ p >
500490 </ main >
0 commit comments