0

Zend Framework 1.Xでは、次のアプローチのどれが優れているのか、そしてその理由は何ですか?
アプローチ-1:
Zend_Aclを拡張する(サブ)クラスを作成し、すべてのAclを管理するために使用します。これにより、$thisオブジェクトを使用してすべてのZend_Acl機能/関数を使用できるようになります。

アプローチ2:
Zend_Aclオブジェクトを保持するカスタムクラスを作成し、オブジェクトに対してアクションを実行します。ここでは、ラッパー関数を作成し、Zend_Aclの基本関数へのアクセスを制御して、ほんの一握りの機能のみを使用できます。

シングルトンパターンを両方のアプローチに使用して、サイト全体で同じZend_Aclが使用されるようにすることもできます。

後でZF-2.0に簡単に移植できるアプローチを探しています。他にアプローチがある場合は、それについて言及してください。それに応じて投稿を更新します。

更新:サイト全体で単一のZend_Aclオブジェクトを維持するために、シングルトン以外のアプローチはありますか?また、approach-1でシングルトンを使用し、カスタムメソッドも使用することについてどう思いますか。これにより、Zend_Aclのすべての定義済みメソッドとカスタムラッパーが提供されます。

4

2 に答える 2

3

後で ZF-2.0 に簡単に移植できるアプローチを探します。他のアプローチがある場合は、それについて言及してください。それに応じて投稿を更新します。

ラッパーは ACL 実装へのアダプターとして機能し、アプリケーションは直接ではなくアダプターとのみ対話するため、この意見はアプローチ 2 を強く支持しますZend_Acl。したがって、後で特定の実装 (つまり の構成Zend_Acl) を別のものに変更することができZend\Aclます。

于 2011-11-18T13:59:00.213 に答える
0

私のプロジェクトでは、モデルを使用して ACL システム全体を管理します (リソースの追加、ロールの追加など)。明らかに、このクラスは Zend_Acl を拡張しています。さらに、preDispatch メソッドを使用するプラグインを使用して、リクエストを行ったユーザーがリクエストされた URL へのアクセスを許可されているかどうかを確認します。

于 2011-11-18T23:46:16.220 に答える