3

プロジェクトで RBAC を処理するために Yii の authManager を使用しています。私はこの概念にかなり慣れていません。

私の質問は、ビジネス ルールの記述と保存に関するものです。CDbAutManager を使用しているため、すべてがデータベースに保存されます。ユーザーは動的に成長するため、どのユーザーがどのロールを持っているかを保存するのは理にかなっています。ただし、ビジネスルールもそこに保存されているようです。私は上手く理解できていない気がします。

「updateOwnPost」のルールを書く必要があります。プロジェクトを簡単に移植できるように、これを PHP ファイルのどこかに記述すべきではありませんか? 同じコードで新しい Web サイトを開始する場合、ルールは維持したいが、ユーザーは維持したくない...

また、それらのルールはどの程度複雑になる可能性がありますか? データベース内に 20 行のルールを書いているとは思えません...

私の質問は 2 つあります。

まず、一般的に、なぜこのように実装されているのでしょうか。また、通常の方法は何ですか?

次に、ビジネス ルールを実際の PHP ファイルへの関数呼び出しにすることはできますか? もしそうなら、どのように?

4

1 に答える 1

1

答え:

1) はい、ビジネスルールは CDbAuthManager で DB に保存されます。いつでも独自の AuthManager ("is a" CAuthManager) を作成して、好きなことを行うことができます。通常、ビズルールは単純な PHP コード スニペットです。あなたのケースも例外ではありません。このような実装の例については、https ://stackoverflow.com/a/13110311/570009 を参照してください。

2) 「呼び出し可能な」PHP コードを呼び出すことができると思います。いずれにしても、PHP ビジネスルール コードは eval() IIRC を介して実行されます。

于 2012-10-31T16:33:32.073 に答える