Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add adapter options template to StorageInterface usage #322

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/Pattern/AbstractStorageCapablePattern.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,22 @@

namespace Laminas\Cache\Pattern;

use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\Cache\Storage\StorageInterface;

abstract class AbstractStorageCapablePattern extends AbstractPattern implements StorageCapableInterface
{
/**
* @param StorageInterface<AdapterOptions> $storage
*/
public function __construct(protected StorageInterface $storage, ?PatternOptions $options = null)
{
parent::__construct($options);
}

/**
* @return StorageInterface<AdapterOptions>
*/
public function getStorage(): StorageInterface
{
return $this->storage;
Expand Down
4 changes: 4 additions & 0 deletions src/Pattern/ObjectCache.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Laminas\Cache\Pattern;

use Laminas\Cache\Exception;
use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\Cache\Storage\StorageInterface;
use Stringable;
use Throwable;
Expand All @@ -21,6 +22,9 @@ final class ObjectCache extends AbstractStorageCapablePattern implements Stringa
{
private CallbackCache $callbackCache;

/**
* @param StorageInterface<AdapterOptions> $storage
*/
public function __construct(StorageInterface $storage, ?PatternOptions $options = null)
{
parent::__construct($storage, $options);
Expand Down
2 changes: 2 additions & 0 deletions src/Psr/CacheItemPool/CacheItemPoolDecorator.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use Laminas\Cache\Psr\Clock;
use Laminas\Cache\Psr\MaximumKeyLengthTrait;
use Laminas\Cache\Psr\SerializationTrait;
use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\Cache\Storage\ClearByNamespaceInterface;
use Laminas\Cache\Storage\FlushableInterface;
use Laminas\Cache\Storage\StorageInterface;
Expand Down Expand Up @@ -292,6 +293,7 @@ public function commit(): bool
/**
* Throws exception is storage is not compatible with PSR-6
*
* @param StorageInterface<AdapterOptions> $storage
* @throws CacheException
*/
private function validateStorage(StorageInterface $storage): void
Expand Down
4 changes: 4 additions & 0 deletions src/Psr/MaximumKeyLengthTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Laminas\Cache\Psr;

use Laminas\Cache\Psr\SimpleCache\SimpleCacheInvalidArgumentException;
use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\Cache\Storage\Capabilities;
use Laminas\Cache\Storage\StorageInterface;

Expand Down Expand Up @@ -32,6 +33,9 @@ trait MaximumKeyLengthTrait
/** @var int<0,max> */
private int $maximumKeyLength;

/**
* @param StorageInterface<AdapterOptions> $storage
*/
private function memoizeMaximumKeyLengthCapability(StorageInterface $storage, Capabilities $capabilities): void
{
$maximumKeyLength = $capabilities->maxKeyLength;
Expand Down
3 changes: 3 additions & 0 deletions src/Psr/SerializationTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Laminas\Cache\Psr;

use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\Cache\Storage\StorageInterface;

use function in_array;
Expand All @@ -16,6 +17,8 @@ trait SerializationTrait
{
/**
* Determine if the given storage adapter requires serialization.
*
* @param StorageInterface<AdapterOptions> $storage
*/
private function isSerializationRequired(StorageInterface $storage): bool
{
Expand Down
4 changes: 4 additions & 0 deletions src/Psr/SimpleCache/SimpleCacheDecorator.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use Laminas\Cache\Psr\Clock;
use Laminas\Cache\Psr\MaximumKeyLengthTrait;
use Laminas\Cache\Psr\SerializationTrait;
use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\Cache\Storage\Capabilities;
use Laminas\Cache\Storage\ClearByNamespaceInterface;
use Laminas\Cache\Storage\FlushableInterface;
Expand Down Expand Up @@ -54,6 +55,9 @@ final class SimpleCacheDecorator implements SimpleCacheInterface

private ClockInterface $clock;

/**
* @param StorageInterface<AdapterOptions> $storage
*/
public function __construct(
private readonly StorageInterface $storage,
?ClockInterface $clock = null,
Expand Down
4 changes: 4 additions & 0 deletions src/Storage/Adapter/AdapterOptions.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ class AdapterOptions extends AbstractOptions

/**
* The adapter using these options
*
* @var StorageInterface<AdapterOptions>
*/
protected ?StorageInterface $adapter = null;

Expand Down Expand Up @@ -78,6 +80,8 @@ class AdapterOptions extends AbstractOptions

/**
* Adapter using this instance
*
* @param StorageInterface<AdapterOptions> $adapter
*/
public function setAdapter(?StorageInterface $adapter = null): self
{
Expand Down
3 changes: 2 additions & 1 deletion src/Storage/Adapter/KeyListIterator.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ final class KeyListIterator implements IteratorInterface, Countable
protected int $position = 0;

/**
* @param StorageInterface<AdapterOptions> $storage
* @param array<int,non-empty-string> $keys Keys to iterate over
*/
public function __construct(
Expand All @@ -42,7 +43,7 @@ public function __construct(
}

/**
* Get storage instance
* @return StorageInterface<AdapterOptions>
*/
public function getStorage(): StorageInterface
{
Expand Down
8 changes: 7 additions & 1 deletion src/Storage/Event.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Laminas\Cache\Storage;

use ArrayObject;
use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\EventManager\Event as BaseEvent;

/** @extends BaseEvent<StorageInterface, ArrayObject> */
Expand All @@ -12,6 +13,7 @@ class Event extends BaseEvent
* Accept a storage adapter and its parameters.
*
* @param non-empty-string $name Event name
* @param StorageInterface<AdapterOptions> $storage
* @param ArrayObject<string,mixed> $params
*/
public function __construct(string $name, StorageInterface $storage, ArrayObject $params)
Expand All @@ -24,7 +26,7 @@ public function __construct(string $name, StorageInterface $storage, ArrayObject
*
* @see \Laminas\EventManager\Event::setTarget()
*
* @param StorageInterface $target
* @param StorageInterface<AdapterOptions> $target
*/
public function setTarget($target): void
{
Expand All @@ -36,6 +38,8 @@ public function setTarget($target): void
* Alias of setTarget
*
* @see \Laminas\EventManager\Event::setTarget()
*
* @param StorageInterface<AdapterOptions> $storage
*/
public function setStorage(StorageInterface $storage): self
{
Expand All @@ -45,6 +49,8 @@ public function setStorage(StorageInterface $storage): self

/**
* Alias of getTarget
*
* @return StorageInterface<AdapterOptions>
*/
public function getStorage(): StorageInterface
{
Expand Down
2 changes: 2 additions & 0 deletions src/Storage/ExceptionEvent.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Laminas\Cache\Storage;

use ArrayObject;
use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Throwable;

class ExceptionEvent extends PostEvent
Expand All @@ -21,6 +22,7 @@ class ExceptionEvent extends PostEvent
* Accept a target and its parameters.
*
* @param non-empty-string $name Event name
* @param StorageInterface<AdapterOptions> $storage
* @param ArrayObject<string,mixed> $params
*/
public function __construct(
Expand Down
3 changes: 3 additions & 0 deletions src/Storage/Plugin/IgnoreUserAbort.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Laminas\Cache\Storage\Plugin;

use Laminas\Cache\Storage\Adapter\AdapterOptions;
use Laminas\Cache\Storage\Event;
use Laminas\Cache\Storage\StorageInterface;
use Laminas\EventManager\EventManagerInterface;
Expand All @@ -13,6 +14,8 @@ final class IgnoreUserAbort extends AbstractPlugin
{
/**
* The storage who activated ignore_user_abort.
*
* @var StorageInterface<AdapterOptions>
*/
protected ?StorageInterface $activatedTarget = null;

Expand Down
2 changes: 2 additions & 0 deletions src/Storage/PostEvent.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Laminas\Cache\Storage;

use ArrayObject;
use Laminas\Cache\Storage\Adapter\AdapterOptions;

class PostEvent extends Event
{
Expand All @@ -15,6 +16,7 @@ class PostEvent extends Event
* Accept a target and its parameters.
*
* @param non-empty-string $name Event name
* @param StorageInterface<AdapterOptions> $storage
* @param ArrayObject<string,mixed> $params
*/
public function __construct(string $name, StorageInterface $storage, ArrayObject $params, mixed $result)
Expand Down