質問

ZFモジュールとモデルの構造についていくつか質問があります。

(ZF 1.11をあきらめたので、私はZF 2について話している)

私の質問を簡単に理解できるようにするには、次の例をご覧ください。(ZF2を学ぶためだけにこれを作成します)

Movie Manager DataBase

「映画マネージャーアプリケーション」です。このアプリケーションには、3人のユーザーがいます。

- visitors: peolple who olny can see the movies in the database.
- members: same as visitors plus insert, update and delete movies.
- administrator: same as members plus insert, update and delete users and other informations as genre, artist, ...

メンバーは新しい映画以外に何も挿入できません。つまり、新しいジャンルを挿入することも、新しいアーティストも挿入することはできません。

わかりました...この問題については、この解決策を見つけました。

- create 3 modules: visitor, member, admin;

しかし、それがDEプログラムを整理する最良の方法かどうかはわかりません...

ZFは、人々がこのようにアプリケーションを整理することを期待していることを理解しています。

- create modules for each funcionallity;
- create roles for each kind of user;

だから、私の質問は次のとおりです。

1. My solution is right or wrong?
2. If my solution is right, how can I organize my application?
3. How can I organize my models, to be visible to more than one module?
- I think a should create a model "movie" somewhere if "inserts, updates, deletes, and selects"
then a module "visitor" could only use a "select" while a module "member" could use all the funcionallities. Am I right?

4. If my solution is not right, how can I organize my application?
5. How should be my modules?

私は本当にこの問題に固執しました。どこにも答えが見つかりませんでした...誰かがこのような少しのアプリケーションを持っていて、あなたが共有することを気にしないなら、私は喜んでいます。

私の質問が明確でない場合は、聞いてください!

ご協力ありがとうございました。

役に立ちましたか?

解決

ここで見るのはデータベースモデルです。したがって、私にとっての主な問題は、データの管理方法です。 MVCパターンでは、モデルを使用してデータを管理します。ここで私が言うことができる限り、あなたの質問はZF2に関連したり、限定されるべきではありません。以前のバージョンと同様に、データベースとデータテーブルを管理するモデルが必要です。

モジュールはアプリケーションの側面を処理します。データ(人、ジャンル、ユーザー、映画)の強固なモデルがある場合、モデルにアクセスする多数のモジュールを作成できます。したがって、さまざまな目的でたくさんのモジュールを持っているが、常に同じモデルを持つことができます。

ユーザー管理のみを処理するモジュール、映画のみを管理(追加)するモジュール、もう1つは映画のみをリスト(読み取り)などにすることができます。

他のヒント

これのほとんどは、「MovieManager」と呼ばれる1つのZF2モジュールで行うことができると思います。映画と人は、MovieManagerモジュールの名前空間内のモデル(つまり、ベースクラスとデータベーステーブル)になる可能性があります。

ユーザーは、ユーザー認証とアクセス制御を処理するための別のモジュールになる可能性があります。 Evan Couryが再利用可能なZF2ユーザーモジュールで行った作業を見てみましょう。 https://github.com/zf-commons/zfcuser または、それをシンプルに保ち、ユーザーモデルをMovieManagerモジュール内に配置することもできます。

Zend_aclを使用して、特定のユーザーが実行できる操作を定義します。または、ユーザークラスに基本的な「役割」プロパティを持ち、MoviEMANAGERコントローラーで許可された役割をチェックすることで、それをより簡単に行うことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top