私は受け取ったajaxリクエストを処理するphpのFrontcontrollerでより大きなアプリケーションを持っています。私は、Action-> Methodマッピングを扱う良い方法について考えています。このコントローラーは、他のクラスをインスタンス化してそこでメソッドを実行することを担当しています。フロントコントローラーで大規模なswitch文を避ける
スイッチがちょうど大きくなりすぎて、醜いです。私は配列を作成し、簡単にやって考えていた:
if(in_array($action, $methodmap)){
$methodmap[$action]();
}
しかしがわからないどのように効率的であるか、または任意の他のより良い代替手段がある場合には、このコントローラは、着信要求の全体の多くを処理するので、パフォーマンスが重要であるということ。
ありがとうございます!代わりに、「ルーティング」の設定ファイルを使用して
あなたは 'ISSET()'場所で使用するため、出力、と呼ばれることになりますin_array()の。また、スイッチ上のハッシュマップの速度差は、(場合によっては測定可能です)(http://xdebug.org/docs/profiler)。 – mario