我正在使用Yii的authManager来处理项目中的RBAC。我对这个概念很陌生。
我的问题是关于编写和存储业务规则。由于我使用CDbAutManager,所有内容都存储在数据库中。这对于存储哪个用户具有哪个角色是有意义的,因为用户正在动态增长。但是,似乎业务规则也存储在那里。我不确定我理解。
我需要为'updateOwnPost'编写规则。不应该在某个地方用PHP文件写入,这样可以轻松移植项目吗?如果我使用相同的代码开始一个新网站,我想保留规则,但不是用户......
此外,这些规则有多复杂?我真的不认为自己在数据库中写了20行规则......
我的问题是双重的:
首先,为什么它是这样实现的,通常的做事方式是什么?
其次,所以我可以开始,我可以让我的业务规则调用真正的PHP文件吗?如果是这样,怎么样?
答案 0 :(得分:1)
数目:
1),是的,商业规则存储在带有CDbAuthManager的数据库中。您始终可以创建自己的AuthManager(“是一个”CAuthManager)并执行您喜欢的任何操作。 Bizrules通常是简单的PHP代码片段。你的情况也不例外。有关此类实现的示例,请参阅:https://stackoverflow.com/a/13110311/570009
2)我相信您可以调用“callable”PHP代码,无论如何,PHP bizrule代码都是通过eval()IIRC运行的。