PHPでのフロントコントローラーの実装について「概念的な」質問があります。
私が見たフロント コントローラーのほとんどはシングルトンで実装されています。私はシングルトン パターンの大ファンではなく、フロント コントローラーの unic インスタンスを格納する静的プロパティを持つコンテナーを作成しました。
シングルトンでは、コンストラクター (またはコンストラクターによって呼び出されるメソッド) 内に初期化コードを配置する必要がありました。
$fc = FrontController::getInstance();
コンテナーを使用すると、FrontController の外部に構成を配置できます。それが私の目標であり、FrontController を取得する簡単な方法がまだあります。
$fc = Container->getFrontController();
このコードは私にはずっときれいに見え、親コンストラクターを気にせずにきれいなサブクラス化を行うことができます。
これは「ブートストラップ」時にまったく同じことですが、実際には、以前の実装との違いは、コンストラクターが非公開/保護されなくなったため、アプリケーション内の任意の場所 (DAO 内またはアクション内) に FrontController を作成できるようになったことです。 .
私の質問は次のとおり です。私のクラスのユーザーに、アプリ内のどこにでも FrontController インスタンスを作成する可能性を与えるのは「悪い習慣」ですか? ドキュメンテーションを書いてコンテナを他のクラスと一緒に配布するのですが、変な使い方は防がなくてはいけないのでしょうか。