私は自分の小さなPHPMVCフレームワークを作成し、現在はPHPMVCフレームワークのキャッシュ戦略を検討しています。何を、どこで、どのようにキャッシュできるかを考えています。
私が持っているフレームワークは単純なMVCフレームワークです。私はフロントコントローラーを持っています。これはアプリケーションを起動し、クラスの自動読み込みを登録し、phpランタイムディレクティブを設定します...そして最後にURLを分析し、適切なコントローラー、メソッド、アクションコントローラーにリクエストをディスパッチします。コントローラーから、ドメインオブジェクト、およびドメインオブジェクトを一部のストレージ(ほとんどの場合はリレーショナルデータベース)に永続化できるデータマッパーにアクセスできます。コントローラから、ドメインオブジェクトとデータマッパーにアクセスできます。
キャッシングに関する限り、これらは私が今できることを私が知っていることです。PHPでは、オペコードキャッシュであるAPCキャッシュを使用できますが、変数をRAMに保存するためにも使用できます。次に、APCキャッシュとして機能するMemcacheとMemcahedを使用できますが、スケーリングする必要がある場合は、異なるサーバーから保存されたキャッシュにアクセスできます。そして、これら2つはオペコードキャッシュではありません。
私が知る限り、私はこれらのことを行うことができます:
コントローラにいるときは、ドメインオブジェクトをキャッシュに保存できるので、そのドメインオブジェクトがすでにキャッシュにある場合は、毎回データベースへの接続を開く必要はありません。
ブートストラップでURLを分析し、そのページのURLを含むキャッシュが存在する場合は、そのURLの解釈済みページを取得するキャッシュシステムを構築できます。存在しない場合は、リクエストを処理してそのページをキャッシュに保存し、現在のURLに関連付けます。
ご覧のとおり、MVCにキャッシュを実装する方法と、キャッシュする場所、方法、可能性についてはよくわかりません。
それで、誰かがこれをよりよく説明することができますか、または私がキャッシュについて学ぶことができるいくつかの良い記事に私をリダイレクトすることができますか?
ありがとう!