Yii:使用每用户站点配置最大化代码重用

时间:2012-11-13 15:33:57

标签: yii

我正在为之工作的客户有一个用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但这似乎不合适(我不希望每个人都来到不同的启动php文件,例如)

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

直观地看起来这样的事情会有意义:

共享控制器到这里:

/protected/controllers

client1的覆盖和添加到此处:

/protected/controllers/client1

或:

/protected/client1/controllers

但我不知道如何让Yii以最有效和易于管理的方式完成这项工作。这是与Yii合作的东西,还是我以无意的方式打破它?如果它能够发挥作用,那么最好的方法是什么,这样我六个月后就可以清楚地看到它,或者是一个替代我的随机开发者?

1 个答案:

答案 0 :(得分:0)

你知道RBAM吗?

通过基于角色的访问,您可以以更加细化的方式分析您的应用程序