CakePHP3 ファイルキャッシュ(File Cache)を活用してサイト高速化する方法です。
※ ファイルキャッシュはローカルファイルを使用するシンプルなキャッシュ方法です。
最も遅いキャッシュエンジンですが、ディスクストレージは非常に安価なため、頻繁に書き込みが行なわれない、大きなデータの保存には適しています。
◯ default(初期設定)のファイルキャッシュ活用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php namespace App\Controller; use Cake\Cache\Cache; // Cacheクラス class UsersController extends AppController { public function index() { // キャッシュ書き込み // write($key, $value, $config='default') Cache::write('test', 'memo'); // キャッシュ読み込み // read($key, $config='default') $data = Cache::read('test'); var_dump($data); // memo } } |
1 2 3 4 | // 1512629640:Unixtime # cat tmp/cache/cake_test 1512629640 s:4:"memo"; |
◯ カスタマイズ設定(key:cake3)のファイルキャッシュ活用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // 「config/app.php」に追記 'Cache' => [ 'default' => [ 'className' => 'File', 'path' => CACHE, 'url' => env('CACHE_DEFAULT_URL', null), ], // カスタマイズCache定義 cake3追記 'cake3' => [ 'className' => 'File', // ファイルキャッシュ 'path' => CACHE.'cakephp3.com/', // キャッシュ保存場所:tmp/cache/cakephp3.com配下 'duration' => '+5 minutes', // キャッシュ有効期限:5分 'url' => env ('CACHE_DEFAULT_URL', null) ], // ・・・ ], |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php namespace App\Controller; use Cake\Cache\Cache; class UsersController extends AppController { public function index() { // キャッシュ書き込み // write($key, $value, $config='default') Cache::write('test', 'memo', 'cake3'); // キャッシュ読み込み // read($key, $config='default') $data = Cache::read('test', 'cake3'); var_dump($data); // memo } } |
1 2 3 4 | // 1512627517:Unixtime # cat tmp/cache/cakephp3.com/cake_test 1512627517 s:4:"memo"; |