オペコード キャッシュとして APC を使用しています。ファイルが存在しないことを APC にキャッシュさせる方法はありますか? と を設定apc.stat = 0
しapc.include_once_override = 1
ました。include_once
ファイルシステムに存在しない可能性のあるファイルの呼び出しのパフォーマンスを改善するために、他に何かすることはありますか? 存在する場合は、明らかにそれを含めたいと考えています。ただし、存在しない場合は存在しないため、 PHP がopen()
要求ごとにファイルを呼び出してチェックすることは望ましくありません。
いくつかの背景について説明します。1 つのベース サイトがありますが、顧客ごとにサイトをカスタマイズできます。カスタムログインページを持っている顧客もいれば、完全に独自のページを持っている顧客もいます。
必要に応じてコントローラーをオーバーライドできるようにするために、少し変わった方法で Zend Framework を使用しています。私たちのサイトLoginController
には、ファイルで定義されたという名前のコントローラがあるかもしれませんcontrollers/LoginController.php
。ただし、クライアント「Company」にはカスタム ログイン ページが必要な場合があるため、Company_LoginController
defined in a directoryという新しいクラスを作成しcontrollers/company/LoginController.php
ます。(この命名規則により、Zend Framework の「モジュール」の概念と一貫性を保つことができます。)
クラスを扱うときは、基本的に次のようにします。
include_once APPLICATION_PATH . '/controllers/company/LoginController.php';
if (class_exists("Company_LoginController")) {
echo 'customer-specific controller exists';
} else {
include_once APPLICATION_PATH . '/controllers/LoginController.php';
echo 'customer-specific controller does not exist; using default';
}
ファイル/controllers/company/LoginController.php
が存在する場合、APC は最初の要求でそれをキャッシュし、ファイルシステムから再度取得することはありません。ただし、ファイル/controllers/company/LoginController.php
が存在しない場合、APC がこのファイルの存在を複数回チェックすることは望ましくありません。これを実現する方法はありますか?