2017-05-15 23 views
0

私が働いているところでは、かなり長い間、Zend Framework vs 1を使ってページをキャッシュしています。私たちはZend Framework 2にアップデートしようとしています。私はどのようにttlでページをキャッシュするのか分かりません。Zend Framework 2のキャッシング

use Zend\Cache\PatternFactory; 

$cache = Zend\Cache\PatternFactory::factory('capture', array(
    'public_dir' => '/Users/mmaruri/Sites/Test/newsfeed', 
    'index_filename' => 'index.php' 
)); 

$requesturl = $_SERVER['REQUEST_URI']; 

//$cache->setOptions(new Zend\Cache\Pattern\PatternOptions(['storage' => 'filesystem', 'ttl' => 3600])); 

//create an id based on the uri 
$cache_identifier = md5($requesturl); 

$isCached = $cache->has($cache_identifier); 
$test = $cache->getOptions($cache_identifier); 

if($isCached) 
{ 
    $t = $cache->get($cache_identifier); 
    header('Status: 200', true, 200); 
    echo $t; 
    return; 
} 
else 
{ 
    $cache->start($cache_identifier); 
} 

ストレージアダプタとキャプチャキャッシュパターンの違いはわかりません。どんな助けもありがとう!ドキュメントに記載されているように

答えて

0

CaptureCacheパターンは、HTTPリクエストを経由して返すように静的リソースを生成するのに有用です。

https://docs.zendframework.com/zend-cache/pattern/capture-cache/オンと

ストレージアダプタは、周知のAdapterパターンを使用して、メモリやファイルシステムなど、実際のストレージリソースのラッパーです。 https://docs.zendframework.com/zend-cache/storage/adapter/

は、だから、イメージなどの静的リソースのためCaptureCacheを使用すると、あなたは、このような行のリストから、としてあなたが与えられた時間(生存時間)をキャッシュするデータのストレージアダプタを使用しますあなたのデータベース。

+0

ページ全体をキャッシュしたいだけです。キャプチャキャッシュのパターンは、私がstartメソッドを通してそれを行うことを可能にします。いずれのストレージアダプタでも同様の方法が見つかりません。 – user2832792

+0

ストレージアダプタはページ全体を格納するためのものではなく、オブジェクトを格納するためのものです。したがって、キャプチャキャッシュを使用する場合は、次の2つのオプションがあります。 1.パターンを使用して独自のTTL実装を作成します。 2.代わりにhttps://github.com/bramstroker/zf2-fullpage-cacheを使用すると、現在のキャプチャキャッシュソリューションより複雑になりますが、より多彩なキャッシングが可能になります。 – Dymen1

関連する問題