ホームページ >バックエンド開発 >PHPチュートリアル >Zend フレームワークの ACL に関する質問
zend フレームワーク
の acl 問題については、
$acl = new Zend_Acl;
$acl->add(new Zend_Acl_Resource) のような zend_acl を使用してアクセス制御チェーンを初期化する例を見ました。 ('デフォルト '));
$acl->add(new Zend_Acl_Resource('News'));
$acl->addRole(new Zend_Acl_Role('guest')); >$acl ->addRole(new Zend_Acl_Role('user'), 'guest');
$acl->addRole(new Zend_Acl_Role('staff'), 'user'); >addRole (new Zend_Acl_Role('admin'));
$acl->allow('guest', array('Default', 'News'), 'view'); acl->allow('user', array('Default', 'News'), array('reply', 'download'));
$acl->allow('staff', array(') Default', 'News'), array('delete', 'update'));
$acl->allow('admin');
この方法は適切ではないと思いますアクセス制御の種類の比較 多くの役割や多くのリソースなど、デリケートな状況では、アクセス制御チェーンが特に長くなることがあります。
zend_acl についてどう思いますか?
ロール、リソース、権限などを毎回ロードせずにデータベースに保存するように変更したいと考えています。誰かがこれの例を持っていますか?私に勧めてください、
また、phpgacl の統合についてどう思いますか?
-----解決策--------------------------------
幸いなことに、私は zend フレームワークを試したことはありません。
------解決策------------------
1. 多くの役割とリソースがある場合、それらを定義するときに非常に詳細になるため、それらが継承される限り、長い制御チェーンは発生しないと思います。 2. zend_acl はとても良いと思いますが、今はオブジェクト指向が提唱されていますよね。
3. 管理を容易にするために、ロール、リソース、権限をデータベースに保存するのが合理的です。ただし、アプリケーションにロードされていなければ、毎回ロードする必要があります。 『Zendframework in action』という書籍に付属するコードをオンラインでダウンロードして、参照として使用できます。
4. Zend_acl は phpgacl モデルをベースに開発されているようなので、どちらかを選択するのが良いと思います。結局のところ、Zend Framework は専門家によって開発されています。さまざまな PHP バージョンに応じて必要に応じて選択することもできます。
私の謙虚な意見です。これがお役に立てば幸いです。