1

わかりました、ここに問題があります:

$frontendOptions = array(
  'lifetime' => 7200,
  'debug_header' => true, // for debugging, but it doesn't work...
  'regexps' => array(

         // Cache the static pages
         '^/pages/' => array('cache' => true),
     )
  );

$backendOptions = $config->cache->backOptions->toArray();

// getting a Zend_Cache_Frontend_Page object
require_once 'Zend/Cache.php';
$cache = Zend_Cache::factory('Page',
  $config->cache->backend,
  $frontendOptions,
  $backendOptions);

$cache->start();

これは何もしません。ページの読み込み時間はまったく同じで、に示されているフォルダ$backendOptionsは空です。私は何が間違っているのですか?

ちなみに:$config->cache->backend読み取ります"file"

4

3 に答える 3

3

さて、私自身の質問に答えるという私の伝統に従って、ここに答えがあり、誰かが何が起こっているのか知っているなら、サブ質問があります:

基本的に、Hello Worldよりも高度なものを実行した場合、このことはそのままでは機能しません。私はクッキーを設定しましたが、クッキーが見つかったため、それについて何もすることを拒否しました。そのため、キャッシュコードを1時間掘り下げると、必要な魔法は単に設定することであることがわかりました。

'cache_with_cookie_variables' => true,

そして、まあ、すべてのクッキーは多かれ少なかれユニークであり、私はそれらを本当に気にしたくないので、私は設定しました

'make_id_with_cookie_variables' => false

だから今それは完璧に動作します。

時間を割いてくれたChrisとsmooveに感謝します。そして今、後から考えると、あなたのコメントは非常に理にかなっています。当然のことながら、エラーや警告はなく、「ファイル」は実際に大文字で綴られていました。

私が今疑問に思っているのは、特定の状況で適切なキャッシュファイルを削除するためにスパイクを送信できるかどうかです。私はそれを槌で打つことができます(キャッシュ内のIDジェネレーターをコピーし、適切なターゲットをunset()します)が、より優れた解決策があるかもしれません。何かアイデアがあれば教えてください。

于 2009-10-01T08:48:45.390 に答える
0

config / application.iniに移動して、以下を設定してください。

resources.frontController.params.disableOutputBuffering = true
于 2012-04-02T12:20:59.543 に答える
0

config / application.iniを使い終わったら、以下のコードをコピーして貼り付けて楽しんでください。一時ファイルを覚えておいてください; ここでは、tempやtmpなどを使用できるservercacheを使用しました。

$frontendOptions = array(
        'lifetime' => 900,
        'automatic_serialization' => true,
        'default_options' => array(
            'cache_with_get_variables' => true,
            'cache_with_post_variables' => true,
            'cache_with_session_variables' => true,
            'cache_with_files_variables' => true,
            'cache_with_cookie_variables' => true,
            'make_id_with_get_variables' => true,
            'make_id_with_post_variables' => true,
            'make_id_with_session_variables' => true,
            'make_id_with_files_variables' => true,
            'make_id_with_cookie_variables' => true,
            'cache'=>true
        ),


    );

    $backendOptions = array(
        'cache_dir' => APPLICATION_PATH . '/servercache/'
    );
    $cache = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions);
    $cache->start();
于 2012-04-02T12:25:47.670 に答える