私は過去にrails、merb、django、asp.netmvcアプリケーションを使用してきました。彼らに共通しているのは(質問に関連している)、フレームワークを設定するコードがあるということです。これは通常、Webサーバーがリサイクルされるまで持続するオブジェクトと状態を作成することを意味します(ルーティングの設定、使用可能なコントローラーの確認など)。
私の知る限り、PHPは、実行されるたびにバイトコードにコンパイルされ、要求後に破棄されるCGIスクリプトに似ています。もちろん、セッションを作成して、同じユーザーからのリクエスト間でデータを永続化することもできます。また、APCのような拡張機能があり、サーバーレベルでリクエスト間でオブジェクトを永続化できます。
私の質問は、レールなどのように機能するPHPアプリケーションをどのように作成できるかということです。つまり、最初のリクエストでフレームワークをセットアップし、2番目以降のリクエストですでにセットアップされているオブジェクトを使用するアプリケーションを意味します。mod_phpに組み込みのキャッシュ機能はありますか?(たとえば、実行されたphpアプリケーションのコンパイルされたバイトコードを格納します)または、この問題を解決する唯一の方法は、APCまたは同様の拡張機能を使用していますか?どうしますか?
ありがとう。
編集:別の質問:セットアップ時間が非常に長いが実行時間が短い(上記のフレームワークのように)大きなPHPアプリケーションを作成する場合、すでにセットアップされているものをどのように「キャッシュ」する必要がありますか(これはおそらくデータベース接続を除いて、多くのことを意味します。そのため、PHPにはすでに永続的な接続があります)。
長いセットアップ時間を正当化するには:PHPリフレクションを使用して、使用可能なオブジェクトを確認し、それに応じてランタイムを設定するとどうなりますか。多くのリフレクションを行うのは通常遅いですが、1回だけ行う必要があります(そしてソースコードが変更された場合にのみ再評価します)。
EDIT2:それはAPCのようです。バイトコードを自動的にキャッシュするという事実は知っておくとよいでしょう。