ScriptFUSION\Porter\Connector\CachingConnector::fetch PHP Méthode

fetch() public méthode

public fetch ( $source, EncapsulatedOptions $options = null )
$options ScriptFUSION\Porter\Options\EncapsulatedOptions
    public function fetch($source, EncapsulatedOptions $options = null)
    {
        $optionsCopy = $options ? $options->copy() : [];
        if ($this->isCacheEnabled()) {
            ksort($optionsCopy);
            $hash = $this->hash([$source, $optionsCopy]);
            if ($this->cache->hasItem($hash)) {
                return $this->cache->getItem($hash)->get();
            }
        }
        $data = $this->fetchFreshData($source, $options);
        isset($hash) && $this->cache->save($this->cache->getItem($hash)->set($data));
        return $data;
    }

Usage Example

 public function testNullAndEmptyAreEquivalent()
 {
     /** @var EncapsulatedOptions $options */
     $options = \Mockery::mock(EncapsulatedOptions::class)->shouldReceive('copy')->andReturn([])->getMock();
     self::assertEmpty($options->copy());
     self::assertSame('foo', $this->connector->fetch('baz', $options));
     self::assertSame('foo', $this->connector->fetch('baz'));
 }