人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ZendFrameworkについて質問させてください。
現在サイトの管理用ページをadminモジュールとして定義しています。
http://example.com/admin/controller/action/
/path/to/controller/admin/xxxxController.php
のように複数のコントローラを管理用でまとめている感じです。
今後、管理機能が増えていくにつれて更に細分化したいと思います。
例えばユーザ関連であれば
/path/to/controller/admin/user/xxxxController.php
のように/admin/user/以下に配置したいです。
色々試した所、モジュールは1つしか定義できないようです。
http://example.com/admin/user/controller/action/
というのが理想です。
これが無理だとしても何か良い案はないでしょうか?
バージョン1.11.4です。
ご教示宜しくお願いします。

●質問者: hyoga_h
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●100ポイント ベストアンサー

コントローラだけを複数に分けるのではなく、
ユーザー関連のモデル、ビュー、コントローラを一まとめにして、
1つのモジュールとしてまとめてしまうという形にします。
http://framework.zend.com/manual/ja/zend.controller.modular.html

モジュラーディレクトリ構造の規約 (The Conventional Modular directory structure) により、さまざまな MVC アプリケーションを自己完結した単位にまとめることができます。 また、それをさまざまなフロントコントローラで再利用できるようになります。 このディレクトリ構造は、・・・以下省略


hyoga_hさんのコメント
はい。実際には /path/to/admin/controler /path/to/admin/view /path/to/admin/models のようになってます。 今回聞きたいのは /path/to/admin/controler内にコントローラファイルが増えてきたので、 もう1つサブディレクトリを増やしたいと思いました。 提示頂いたドキュメントの例で言うと blogに様々な機能追加をしていたらコントローラファイルが膨大になってきたので、 blog内の機能単位でディレクトリを切りたいという事です。

うぃんどさんのコメント
質問の趣旨は理解しているつもりです。 仮に3つの機能に分けたとします。 ・ユーザー管理はadminUモジュール ・コメント管理はadminCモジュール ・ポイント管理はadminPモジュール あなたの行いたいことは、下記のようなものだと思いますが、 このようなことを実現しようとすると大幅な改造を行ったり、 リライトで対応するといったような手段をとることになります。 いずれにしても非常に複雑怪奇になってしまいますから、 「何のためのフレームワークか?」ということになっていきます。 /path/to/admin/controler/ユーザー管理/ /path/to/admin/controler/コメント管理/ /path/to/admin/controler/ポイント管理/ そこでフレームワークの用意している方法を提示しました。 それぞれにモデル、ビュー、コントローラがありますので、 例えば、下記のように分かれます。 adminU/controler adminU/view adminU/models adminC/controler adminC/view adminC/models adminP/controler adminP/view adminP/models これまでどおり中心となるモジュールもありますから、 上記とあわせれば12のディレクトリに分かれるということになります。 admin/controler admin/view admin/models 回答をマニュアルページのリンクだけにしたのは、 熟読して自分のものにしてから作業に取り掛からなければならないからです。 (だって・・・あなたが作り上げたものがどういったもので、 どれとどれが絡み合っているかなど想像だけではとてもじゃないですけど対応できませんもの・・・)

hyoga_hさんのコメント
詳細なご回答ありがとうございます。 私の場合、adminUモジュールのディレクトリを admin/U/controler admin/U/view admin/U/models とするのが理想になりますかね。 検討してみます。 参考までにwindofjulyの環境ではモジュールのコントローラディレクトリ内のコントローラファイルが増えてきた時ってどうしてますか? あまり気にする所じゃないでしょうか?

うぃんどさんのコメント
モジュールに分けるにしても、大量多種のコントローラを扱うにしても、 紙の上での管理が必要ってところは旧態依然として変わらなかったりしますので、 あとはクライアント(フレームワーク使う場合は、たいがい下請けなので)の 意向次第といったところでしょうか・・・

hyoga_hさんのコメント
そうですよね。 理想を追いすぎました。 自社開発なので自己満足の領域に入ってます。 色々アドバイスありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ