次のようにインスタンス化されたフロントコントローラーがあります。
$request = new FrontController();
$request->route();
メソッドはroute()
、要求に基づいて、必要に応じて適切なコントローラーを動的に呼び出します。
今(私は思う)すべてのコントローラーがFrontControllerを拡張して、メソッドとプロパティの共有セットにアクセスできるようにしたいのですがroute()
、無限につながる可能性があるため、メソッドを継承したくありませんループ。ただし、メソッドがプライベートとしてマークされている場合はroute()
、上記のようにオブジェクトをインスタンス化できません。
私が見つけた唯一の解決策はself::route()
、FrontController のコンストラクターから呼び出してから、各子コントローラーで空のコンストラクターを定義することです。ずさんな感じです。
特定のメソッドをプライベートとしてマークせずに継承から除外する方法はありますか? それとも、問題を別の角度から見る必要がありますか?