Skip to content

Commit

Permalink
added expires after method to cacheable interface
Browse files Browse the repository at this point in the history
  • Loading branch information
robfrawley committed May 18, 2017
1 parent a2dc655 commit 41ed413
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 3 deletions.
12 changes: 12 additions & 0 deletions lib/AbstractCacheableTransformer.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,19 @@ abstract class AbstractCacheableTransformer extends AbstractTransformer implemen
public function __construct(CacheItemPoolInterface $cache, \DateInterval $expiresAfter = null)
{
$this->cache = $cache;
$this->setExpiresAfter($expiresAfter);
}

/**
* @param \DateInterval|null $expiresAfter
*
* @return CacheableTransformerInterface
*/
public function setExpiresAfter(\DateInterval $expiresAfter = null): CacheableTransformerInterface
{
$this->expiresAfter = $expiresAfter;

return $this;
}

/**
Expand Down
7 changes: 7 additions & 0 deletions lib/CacheableTransformerInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@

interface CacheableTransformerInterface extends TransformerInterface
{
/**
* @param \DateInterval|null $expiresAfter
*
* @return self
*/
public function setExpiresAfter(\DateInterval $expiresAfter = null): self;

/**
* Returns true if the passed string transformation is cached.
*
Expand Down
8 changes: 5 additions & 3 deletions tests/AbstractCacheableTransformerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,8 @@ private function getLoremText(int $maximumCharacters = null): string
*/
private function getCacheableSimpleStringTransformerInstance(CacheItemPoolInterface $cache = null, \DateInterval $expiresAfter = null): CacheableTransformerInterface
{
return new StringTransformer($cache ?: $this->getArrayAdapterMock(), $expiresAfter);
return (new StringTransformer($cache ?: $this->getArrayAdapterMock()))
->setExpiresAfter($expiresAfter);
}

/**
Expand All @@ -183,8 +184,9 @@ private function getAbstractCacheableTransformerMock(CacheItemPoolInterface $cac
{
return $this
->getMockBuilder(AbstractCacheableTransformer::class)
->setConstructorArgs([$cache ?: $this->getCacheItemPoolInterfaceMock(), $expiresAfter])
->getMockForAbstractClass();
->setConstructorArgs([$cache ?: $this->getCacheItemPoolInterfaceMock()])
->getMockForAbstractClass()
->setExpiresAfter($expiresAfter);
}

/**
Expand Down

0 comments on commit 41ed413

Please sign in to comment.