0

.htmlサーバー上のパブリックフォルダーにファイルを生成して保存する zend アプリケーションがあります。これはキャッシング メカニズムであり、cron ジョブで 1 日 1 回実行されます。

cache.phtml最も新しく生成されたファイルの内容をzend ビューに含めたいと思い.htmlます。どうやってやるの。

生成された'htmlファイルがreport.html.

ありがとう

4

2 に答える 2

1

view helperキャッシュの内容を取得するために を作成します。ビュー ヘルパーには、正しいファイルを見つけてその内容を読み取り、それを返す単純な PHP メソッドが含まれます。

class App_View_Helper_Cache extends
    extends Zend_View_Helper_Abstract
{
    public function cache()
    {
        $file = <however you figure out what the file is>;
        return file_get_contents($file);
    }
}

次に、ビューで、ビュー ヘルパーを単純にエコーします。

<?= $this->cache() ?>
于 2013-06-04T13:03:39.380 に答える
0

フラット HTML ファイルをその場でレンダリングするには:

このためのヘルパーを作成する必要はありません。次のものを使用できます。

<?= $this->render('/path/to/report.html') ?>

ただし、それを使用しないでください。Zend_Cache を使用してください。

ただし、Zend_Cacheを調べる必要があります。データベースからプルするのではなく、モデルの Zend Cache から変数をロードする方が、アプリケーションの残りの部分とより一貫性があることがわかる場合があります。

注: これらの手順は Zend Framework 1 用です。Zend Framework 2 キャッシュには同様の機能がありますが、同じではありません。

まず、キャッシュを作成します。

$frontendOptions = array(
   'lifetime' => 60*60*24, // cache lifetime of 24 hours
   'automatic_serialization' => true
);
$backendOptions = array(
    'cache_dir' => './tmp/' // Directory where to put the cache files
);

$cache = Zend_Cache::factory('Core','File',$frontendOptions,$backendOptions);

次に、これを実行して、必要なときに値を取得します。

public function cacheAction(){
    ...
    if(!$result = $cache->load('daily_report')){
        $result = dailyFunction();
        $cache->save($result, 'daily_report')
    }
    $this->view->result = $result;
}

これはdailyFunction()1 日に 1 回実行され (lifetime変数で定義)、$resultキャッシュまたは関数から返されます。その後、通常どおりビューで使用できます。

cron ジョブ、静的 HTML ファイル、およびキャッシュのすべての利点はありません。

于 2013-06-04T13:07:53.547 に答える