CakePHP は APC や XCache などをサポートしていますか?
5 に答える
Cake's/app/config/core.php
では、キャッシュ エンジンを設定するためのオプションがいくつかあります (バージョン 1.2 より新しい)。
APC (http://pecl.php.net/package/APC)
Cache::config('default', array(
'engine' => 'Apc', //[required]
'duration'=> 3600, //[optional]
'probability'=> 100, //[optional]
'prefix' => Inflector::slug(APP_DIR) . '_', //[optional] prefix every cache file with this string
));
オペコード キャッシュとして APC をサポートする必要があります。結局のところ、これは単なる PHP コードです。
また、APC をデータのキャッシュとして使用する APC 関連のクラスがあるようです: を参照してくださいApcEngine
。
マニュアルの7.2.2 Cache Engines in Cakeも参照してください。APC、XCache、File、および memcached のサポートがあると記載されています。
CakePhp 2.0では、Apcが自動的に検出され、設定されます。core.phpには、次のものがあります。
$engine = 'File';
if (extension_loaded('apc') && function_exists('apc_dec') && (php_sapi_name() !== 'cli' || ini_get('apc.enable_cli'))) {
$engine = 'Apc';
}
すでに提供されている他の良い回答に追加するだけで、内部キャッシュのためにファイルキャッシュ以外のものをケーキに使用させるためのいくつかのトリックがあります。このコードは、コア キャッシュ (この例では APC) に関係なく、ケーキに APC、Xcache を使用させます。
Cache::config('_cake_core_',
array(
'engine' => 'Apc',
'duration'=> 3600,
'probability'=> 100,
)
);
これをコントローラー/アプリコントローラーに入れることで、Cake はモデルをキャッシュすることもできます。
var $persistModel = true;
ただし、モデルはファイル キャッシュしか使用できません
これらはすべて、ケーキのキャッシングメカニズムを使用してアプリを高速化する方法が多数含まれているこの記事から抜粋したものです。
http://www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps
また、Pascal が述べたように、APC をインストールして構成すると、PHP オペコードが自動的にキャッシュされます。
キャッシュ機能をさらに強化するために、php はファイルの代わりにセッション ストアとして memcache をサポートします。これは、負荷分散された環境で特に役立ちます。単一サーバーの実装の例は、これを ini に入れることです。
extension=memcache.so
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211?persistent=1"
そして、これはあなたのcore.phpにあります
Configure::write('Session.save', 'php');