有条件地允许MVC中的功能/渲染视图?

时间:2014-06-22 15:38:25

标签: php model-view-controller

我正在为我的PHP应用程序使用基本的MVC模式(https://github.com/panique/php-mvc的自定义版本)。

我不确定处理这样的场景的正确方法是什么:

让我们说我的应用程序将被2家不同的公司使用。每家公司都希望拥有特定的功能。公司将共享一些核心功能。 此外,我需要管理每个公司(管理员,员工等)的用户权限。

我的目标是拥有“模块”(特定功能 - 仪表板,个人资料页面......),并为每个受用户权限影响的公司有条件地加载它们。

另外,我需要以某种方式为每个公司加载不同的布局。 (并非完全不同,只是略有变化。)

我用Google搜索了一下,找到了像ACL和Decorator这样的东西,但我认为它们不是我想要的。

这种情况的最佳方式是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我假设(抱歉,没时间检查)这个框架与单点入口(bootsrtap)真的是MVC一样。 每个公司的整个业务逻辑和请求处理保持不变,只有配置不同。

开始你需要添加一个域顶级url部分(主文件夹或子域),然后从url请求($ _GET)中提取它作为公司名称/别名/ id并将其用作变量来加载正确的配置 - 数据库条目(至少),可能是激活的模块(如果没有存储在数据库中),个性化视图(文件前缀/文件夹名称)等。它们都来自小型.htaccess& (app)配置加载部分(变量路径)中的框架增强。其余的只是为一个假设的公司编写完整的工作应用程序,所有模块都已激活:)

您的主页(仅限域名网址)将仅作为具体公司的调度员(它不必基于框架 - 即使是带链接的简单html),但它比另一个更简单通用数据库作为其他dbs的自动调度程序(不是那么难做,但我将其留待以后开发)。