cakephp 2.x theme 別 キャッシュ

2013年4月4日更新 view: 135 view
photoBy: http://otndnld.oracle.co.jp/document/products/timesten/html/E05172-01/images/CacheGroupOverfk.jpg

テーマ別にキャッシュする cakephp2.x

http://saifull.com/cakephp2-theme-cache

の方が簡単そうですね。。。

スポンサードリンク

cakephp 1 では http://www.matomater.com/612/

の方法でできた。
以下はcakephp 2.x の方法ですが、足りない部分は上記をご覧下さい。

では cakephp 2.x ではどのようにすればよいか。

携帯振り分け

AppController.php

App::uses('Controller', 'Controller');

class AppController extends Controller {
    
    public $components = array('Cookie');
    
    function beforeFilter()
    {    
        header("Content-Type: text/html; charset=UTF-8");

        if(isSmartPhone()){
            if($this->Cookie->read('view') != 'pc'){
                $this->theme = 'SmartPhone';
            }
        }
    }

}

ここまでで、スマートフォンから飛んできたら SmartPhone テーマを使える。

キャッシュ設定

大文字、小文字に注意して下さい。

キャッシュ書き込みの変更

まずは テーマがあるときはテーマ名を先頭につけてキャッシュを保存します。

app/View/Helper/CacheHelper.php

protected function _writeFile($content, $timestamp, $useCallbacks = false) {
    
    //・・・省略・・・・
    
    $content = preg_replace("/(<\\?xml)/", "<?php echo '$1'; ?>", $content);
    $file .= $content;
    
    
    if(isSmartPhone()){
         if(!isset($_COOKIE['CakeCookie']['view'])){
            $cache = 'smartphone_'.$cache;//キャッシュ名は必ず小文字
         }
    }

    return cache('views' . DS . $cache, $file, $timestamp);
}

キャッシュ読み込み変更

読み込み時に指定したテーマのキャッシュを読み込みます

lib/Cake/Routing/Filter/CakeDispatcher.php

public function beforeDispatch(CakeEvent $event) {
    
    //・・・省略・・・
    
    $prefix = Configure::read('Cache.viewPrefix');

    if(isSmartPhone()){
         if(!isset($_COOKIE['CakeCookie']['view'])){
            $prefix = 'smartphone';
         }
    }
    
    if ($prefix) {
        $path = $prefix . '_' . $path;
    }
    
    //・・・省略・・・
}

こんな感じです。

テーマ名のみ キャメルケース、
キャッシュ名は 全て小文字

にして下さい。

キャッシュさせない nocache

キャッシュさせたくないところは以下のようにする

<!--nocache-->
<?=$this->element('setFlash');?>
<!--/nocache-->

nocacheタグで囲めばいいのです。
ただし、エレメントの中では使えません。レイアウトで指定しましょう。

スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

9月21日 ( 木 ) にアクセスが多かった記事はこちら!