OK、私はスキルを向上させるために、PHPでもっと疎結合なクラスなどを作るのが得意です。私は自分のコンピュータ上にローカルテストデータベースを持っており、ユーザーテーブルには "role"という名前の列があります。私は、彼らがしようとしている特定のタスクに依存しないように、ユーザーの権限を取得するための一般的な関数である関数を構築しようとしています。多次元配列へのパーミッションを格納するPHP
ユーザーは「役割」は、特定の値が、次のような多次元配列に格納権限である場合など新しいフォーラムトピックを作成し、私はデータベースを照会したいような何かをしようとします:
$permissions = array(
'forums' => array("create", "delete", "edit", "lock"),
'users' => array("edit", "lock")
);
次に、ユーザーがisset($ var)をチェックしてフォームを投稿した後で、すべてのPHPファイルの先頭に次のように入力しなくても、特定のアクセス許可の配列を検索できます。ユーザーがユーザーを編集しようとしている場合ので、私は可能な場合は、クラスのメソッドを経由して、次のような何かを行うことができるようにしたい
if (Class::get_permissions($userID),array($permissionType=>$permission))) {
// do query
} else {
// return error message
}
意志チェック機能を疎結合の権限を持っているための良い方法になるだろうかこのようなことができますか?これはちょうどこのように配置する必要はありませんが、疎結合しているので、再利用して特定のタスクに束縛されることはありません。しかし、私は再利用のために "admin"、 "user"などの代わりに一連の権限を持つことができるようにしたいので、私のオプションを制限するものではありません。なぜなら私のPHPスクリプトファイルの一番上に、このようなコードがたくさんあるからです。私は何度も同じものを書いて保管しないでどこにこれを得るのを助けるために、任意の入力のための
if (Class::get_permissions($userID) == "admin") {
// allow query
} else {
// return error
}
感謝。
ZendのACLセクションでは、aclの働きについてokの紹介があります:http://framework.zend.com/manual/en/zend.acl.introduction.html –