5

MVC では、そのようなもので、すぐに呼び出すと、/ をhttp://www.yourdomain.com/sampleController/sampleAction/呼び出すだけで発火します。/sampleController//sampleController/indexAction//indexController/indexAction/

もちろん例外もありますが、それは多かれ少なかれ慣例です。

Zend には何かスマイルがあります。彼らはそれをモジュールと呼んでいます。

これらは基本的に、それぞれに MVC ロジックを含む単なるフォルダーです。だからあなたは呼び出すことができます/Module1/Controller/Action/。呼び出すだけで発火します/Module1//Module1/indexController/indexAction/巨大なプロジェクトの場合はさらに構造化できるので便利ですが、小さなプロジェクトの場合は面倒です。

だから私はHMVC/PACのアイデアが本当に好きで、私のフレームワークに取り入れたいと思っています。

基本的に Zend と同じですが、ネストされたモジュールが無制限であることを正しく理解できましたか?

たとえば、私は持ってい/sub-project/sub-sub-project/controller/action/ますか?

また、/A/B/C/D/ と呼ぶ場合の規則は何ですか。

モジュールA/BのコントローラCのアクションDということですか?または、モジュール A/B/C のコントローラー D の IndexAction ですか?

例に挙げてみましょう:

Content
    ToplistController 
        AdministrateAction
        IndexAction
ContentController
     ToplistAction
Users
    Chat
        RoomController
            IndexAction

ここで URL を呼び出します/content/toplist/

URL については、/users/chat/room/?room=1可能性が 1 つしかないため、この例で明らかです。しかし、それは正しいものですか?適切なコントローラーで適切なアクションを一意に指定する規則はありますか?

私の最初のアイデアは、「できるだけ推測しない」ことでした。

そのため、最初に URL がアクションに直接一致するかどうかを確認します。

また、インデックス アクションで同じように呼び出されたコントローラー/モジュールがある場合、「より高いレベル」での一致が存在する場合は起動できません。

そうでない場合は、URL がコントローラーと直接一致するかどうかを確認し、IndexAction を追加します。

そうでない場合は、モジュールを探して IndexController と IndexAction を推測し、そうでない場合は index というモジュールを探します。

しかし、この if/else とファイル システム アクセスは避けたいと思います。それで、私はコンベンションがどうなっているのか疑問に思いました。それとも1つでもありますか?例が見つかりませんでした!

または、何も指定されていない場合に IndexAction を呼び出すようなことはありませんが、すべての「短い URL」を個別のルーティング ロジックで指定する必要がありますか?

または、HMVC/PAC の概念を完全に誤解していますか?

参考までに: 私は php タグを含めました。なぜなら、私は自分のフレームワークを php で実行していて、php の規則について知りたいからです。他のプログラミング言語の違いをよく見てきました。

4

2 に答える 2

2

単純な(そして広く受け入れられている)規則の1つは、末尾のスラッシュの有無です。ここで、A / B / C / D /はコントローラーDのIndexActionを意味し、A / B / C/DはコントローラーCのアクションDを意味します。 。

于 2012-03-11T07:56:58.770 に答える