クエリキャッシュ

Posted by muchag | CakePHP 3.x | 2018-04-15 (日) 15:51:04


公式:キャッシュ

【環境】
CakePHP: 3.5.11
php: 7.1.5
定義
/vendor/cakephp/cakephp/src/ORM/Query.php

public function cache($key, $config = 'default')

↓ が呼ばれる。

/vendor/cakephp/cakephp/src/Datasource/QueryTrait.php

public function cache($key, $config = 'default')
利用

公式:クエリービルダー ロードされた結果をキャッシュする


$query->cache('recent_articles');

// 文字列で Config 名
$query->cache('recent_articles', 'dbResults');

// CacheEngine のインスタンス
$query->cache('recent_articles', $memcache);

// クエリーの where 句の単純なチェックサムに基づくキーを生成します
$query->cache(function ($q) {
    return 'articles-' . md5(serialize($q->clause('where')));
});

つまり、find や get をする際に cache 設定をしておけば
次回からはキャッシュが存在すれば、そちらから取得してくれる
と理解してみた。。。

書式

公式:データの取り出しと結果セット 主キーで単一のエンティティーを取得する


// オプション指定
$article = $articles->get($id, [
    'cache' => 'custom',
]);

あちこち見た感じでは、チェーン指定も可能な気がしたけど
気のせいだった。。。

// チェーン指定
$article = $articles->get($id)
->cache('custom');

Call to undefined method Akportal\Model\Entity\Hoge::cache()
CakePHP 3.x | 2018-04-15 (日) 15:51:04 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment