3

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

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

私の質問を理解しやすくするために、次の例を見てください:(私はZF2を学ぶためだけにこれを作成します)

ムービーマネージャーデータベース

それは「映画マネージャーアプリケーション」です。このアプリケーションには、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;

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

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?

私は本当にこの問題にこだわった。どこにも答えが見つかりませんでした...誰かがこのような小さなアプリケーションを持っていて、共有してもかまわないのであれば、私は喜んでいます。

質問がよくわからない場合は、質問してください。

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

4

2 に答える 2

2

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

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

ユーザー管理のみを処理するモジュール、映画のみを管理(追加/更新)するモジュール、映画のみを一覧表示(読み取り)するモジュールなどを作成できます。

于 2012-02-17T21:22:32.140 に答える
1

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

ユーザーは、ユーザー認証とアクセス制御を処理するための別個のモジュールである可能性があります。Evan Couryが再利用可能なZF2ユーザーモジュールで行った作業をご覧ください:https ://github.com/Zf-Commons/ZfcUserまたは、シンプルに保ち、ユーザーモデルをMovieManagerモジュール内に配置することもできます。 。

Zend_Aclを使用して、特定のユーザーが実行できる操作を定義します。または、Userクラスに基本的な「ロール」プロパティを設定し、MovieManagerコントローラーで承認されたロールを確認することで、これをより簡単に行うことができます。

于 2012-05-01T16:24:44.450 に答える