3

我在我的项目中使用 Yii 的 authManager 来处理 RBAC。我对这个概念相当陌生。

我的问题是关于编写和存储业务规则。由于我使用的是 CDbAutManager,所有内容都存储在数据库中。这对于存储哪个用户具有哪个角色是有意义的,因为用户是动态增长的。但是,业务规则似乎也存储在那里。我不确定我是否理解。

我需要为“updateOwnPost”写一条规则。这不应该写在某个地方的 PHP 文件中,以便可以轻松移植项目吗?如果我用相同的代码启动一个新网站,我想保留规则而不是用户......

此外,这些规则有多复杂?我真的没有看到自己在数据库中编写 20 行规则......

我的问题有两个:

首先,一般来说,为什么要这样实现,正常的做事方式是什么?

其次,我可以开始了,我可以让我的业务规则成为对真实 PHP 文件的函数调用吗?如果是这样,怎么做?

4

1 回答 1

1

答案:

1), 是的,商务规则通过 CDbAuthManager 存储在数据库中。您始终可以创建自己的 AuthManager(“是”CAuthManager)并做任何您想做的事情。Bizrules 通常是简单的 PHP 代码片段。你的情况也不例外。这种实现的例子见:https ://stackoverflow.com/a/13110311/570009

2) 我相信您可以调用“可调用”PHP 代码,并且无论如何,PHP bizrule 代码都是通过 eval() IIRC 运行的。

于 2012-10-31T16:33:32.073 回答