およそ何億もの「PHPフレームワーク」があります。そしてそれらのほとんどは、MVCパターンに従って自分自身に請求します。osCommerceのコーディングスタイル(SQLとHTMLと非常に混ざり合った処理ロジック)を克服することは歓迎されますが、保守可能なアプリケーション設計を実現するためのアプローチは確かに単純で簡単です。
元のMVCコンセプトは、GUIアプリケーションを対象としていました。そして、Gtk / Pythonの場合は、それに応じて実行するのが現実的であるように思われます。しかし、PHP Webアプリはライブビュー(GUI要素)と永続的なコントローラーランタイムでは動作しません。使用されているコード+ディレクトリのグループ化またはクラスの名前付けだけを記述しているのであれば、それは間違いなく間違いです。
「MVC」は、PHPフレームワークの流行語のように使用されているようです。そして、私は実際に1つまたは2つの成熟したPHPフレームワークがそれを認めているのを見ましたが、とにかくフレーズを再定義して内部に一致させます。
それは一般的にヘビ油ですか?なぜより良い用語が使われず、メンテナンス可能なPHPのためのより賢明な概念が広まったのですか?
いくつかの手の込んだ推論
PHPの実装が実際のMVCパターンに従っていないと思うのはなぜですか。
モデル:理論的には、モデルは太く、ビジネスロジックを含み、コントローラーはシンハンドラー(入力->出力)である必要があります。実際には、PHPフレームワークは浅いモデルを提唱しています。CIとSymfonyの例は、等価なモデル== ORMです。HTTP入力もコントローラーによって処理され、モデルとして扱われません。
ビュー:AJAXが割引された回避策。Webページにビューを含めることはできません。PHPフレームワークはまだページを送り出します。インターフェースは通常のHTTPモデルに準拠していますが、MVC以外のアプリケーションに勝る利点はありません。(そして最後に、広く普及しているphpフレームワークは、実際にはHTMLではなくGUIビューに出力できません。Gtk/ Console / Webを操作できるPHPライブラリを見たことがありますが、フレームワークはできません。)
コントローラー:よくわかりません。コントローラーは、MVCモデルで長時間実行され、永続的にアクティブである必要はありません。ただし、PHPフレームワークのコンテキストでは、これらはほとんどがリクエストハンドラです。議論の余地があるものではありませんが、少し流行語のように感じます。
より良い記述子がありますか?PMVCやHMVCのような頭字語が使われるのを見てきました。そこには説明があいまいになっていますが、おそらくこれらは現在のWebフレームワークをあまり目立たなくしているのでしょうか?