3

我为之工作的客户有一个用 Yii 编写的 CMS。目前,他们的一部分业务是定制 CMS 以满足每个客户的特定需求。大约 90% 的代码被重用,主要是通过从一个目录复制和粘贴到另一个目录。虽然我一直在从事这个项目,但我不得不多次将更改合并到共享代码库中。

这些站点中的所有或大多数都托管在同一台服务器上,并且似乎使用单一登录会更有意义,这会改变我们基于登录显示的功能。在某些情况下,这意味着覆盖整个或部分视图(例如,_form.php 可能会因客户而异),包括控制器和模型。大多数情况下,这意味着添加一个新控制器来实现为该客户端编写的一些功能。

我读过这里有一个前端和后端站点:http ://www.yiiframework.com/wiki/63/organize-directories-for-applications-with-front-end-and-back-end-using- webapplicationend-behavior但这似乎不合适(例如,我不希望每个人都使用不同的 start php 文件)

理想情况下,我会让用户登录并获得一个站点 ID,它将过滤共享 MVC 对象中的数据,并专门为他们添加那些,或者在必要时覆盖那些

直觉上,这样的事情似乎是有道理的:

共享控制器在这里:

/protected/controllers

client1 的覆盖和添加到这里:

/protected/controllers/client1

或者:

/protected/client1/controllers

但我不确定如何让 Yii 以最有效和易于管理的方式做到这一点。这是要与 Yii 一起工作的东西,还是我以非故意的方式破坏它?如果它会起作用,那么完成它的最佳方法是什么,以便从现在起六个月后我清楚,或者一些随机的开发人员取代我?

4

1 回答 1

0

你知道 RBAM 吗?

使用基于角色的访问,您可以以或多或少的粒度方式分析您的应用程序

于 2012-11-28T14:44:29.400 回答