アプリケーションで遭遇した競合/難問について質問があります。
キャッシュからのデータやセッション情報、PDO ラッパーのメソッドなど、すべてのモデルとコントローラーで共通の「もの」を利用できるようにしたいと考えています。
現在、個々の機能コントローラーと機能モデルはそれぞれ、ベース コントローラーとベース モデルを拡張し、それらは共通の処理をすべて実行する単一のオブジェクトを拡張します。
コントローラーはルーター/ディスパッチャーによって呼び出され、コントローラーはモデルを呼び出してデータを取得します。これの問題は、メイン オブジェクトが 2 回構築されることを意味します。1 回目は機能コントローラーが呼び出されたとき、もう 1 つは機能コントローラーが機能モデルを呼び出したときです。
以下の図を参照してください。
明らかに私は何か間違ったことをしているので、この問題に対する何らかのベストプラクティスの解決策があるかどうか疑問に思っていました.
私が望んでいないのは、オブジェクトがロードするものをコントローラーを介してモデルに渡す必要があることです。つまり、新しい共通要素をオブジェクトに追加する必要があるときはいつでも、それをモデルに渡す必要があります。
$this->cache または $this->db または $this->session をコントローラーとモデルの両方で常に普遍的に利用できるようにする方がはるかに単純で簡単です (将来のヘルパーやその他のクラスも同様です)。
この問題を解決するにはどうすればよいですか?
ありがとう :)