このトピックに戻りましょう。それを終わらせるのは良いことですが、実装はかなり難しいです。私たちが抱えている問題を理解してみましょう: ベン: あなたのプロジェクトで何が起こっているのかわかりませんが、同様のシナリオを作成しましょう. ゲスト、クライアント、管理者向けの Web サイトがあります: データベースにテーブルが必要です.ロール名を保存し、ロールごとにその権限を持っています
Roles (idRole, nameRole)
Permissions (We will speak about it later)
後で、アプリケーションにさらに多くの役割を設定する必要があるとしましょう。そのため、管理者が各役割 (Drupal や Joomla など) にアクセス許可を割り当てるページを設定します。解決策の 1 つは、すべてのモジュールを見つけることです。次に、各モジュールのコントローラーと各コントローラーのアクションを取得します。次に、Zend_Acl に、データベースの Roles テーブルからロールを設定するように指示する必要があります。リソースは、各コントローラーの Zend Modules->Actions です。したがって、すべてのモジュールを格納するテーブルが必要であり、各モジュールにはコントローラーとアクションが必要です。
Modules (idModule, nameModule)
Controllers (idController, nameController, idModule_FK)
Actions (idAction, nameAction, descriptionAction, idController_FK)
説明フィールドは、アクションの説明の例から取得します
/**
* @description := Action to edit Roles
**/
public function editAction {}
それでは、データベース構造を完成させましょう
Roles (idRole, nameRole)
Permission (idRole, allowedPermission, idAction, dateTimeAssigned)
Modules (idModule, nameModule)
Controllers (idController, nameController, idModule_FK)
Actions (idAction, nameAction, descriptionAction, idController_FK)
これは、今まで見つけた一般的な構造です。すべてのモジュール/コントローラー/アクションを取得しようとしています。それが完了したら、ここ (プラグイン クラス) に戻してから、すべてを移動しようとします。 Zend_Acl Dynamic でこの問題を処理するために一緒に (他の人への貢献)。
次のステップ: プラグインを作成するにはLibrary/App/Action/Helper
、それが誰かによって行われた場合は、それについての一般的な貢献を投稿してください。次に、Zend プロジェクトで Doctrine ORM を使用してデータを保存することに焦点を当てます。3 番目のステップは、コントローラーを作成することです。データベース情報 (ロール、パーミッション、アクション) から動的に Zend_Acl を作成します。
アドバイス/アイデア/提案、ここで終了するまで続行する必要があります。
敬具、