多个MVC应用程序,相同的模型和数据库,不同的控制器,视图和域

时间:2010-09-23 08:27:27

标签: model-view-controller architecture

我的任务是重建四个电子学习网络应用程序(PHP MVC),用于处理购买/销售和与在线课程互动的公司和用户:

  1. 创建公司帐户的“霸主”应用程序,为所有其他应用程序中的所有帐户汇总报告等。
  2. “企业”应用程序,大型组织管理其子公司,并可访问所有公司的汇总报告。
  3. 电子商务应用程序,公司和个人购买和销售课程。
  4. “基础”应用程序,公司的用户可以与公司创建或购买的课程进行交互。此外,还有“教师”创建用户和课程的地方,这些教师基本上是具有较高管理权限的用户。
  5. 所有这些应用程序当然都有不同的界面,可以在不同的域上访问。

    截至目前,应用程序4已完成。

    我的问题是,之前的开发人员复制了大量代码,只在应用程序之间共享数据库,导致需要更改某些内容时出现维护问题。

    应用程序有很多共同之处。他们都处理相同的课程,用户和公司,从4到1,每个应用程序基本上了解正在发生的事情。

    例如,在应用程序4中,有当前公司的课程完成和电子商务报告(只有部分用户可以访问)。在应用程序2中,汇总了属于同一企业的公司的报告,并且在应用程序1中进一步提供了针对所有企业和独立公司的报告。此外,每个都有一些不同的独特功能。

    所以我觉得所有的应用程序应该共享相同的模型,每个应用程序应该拥有自己的控制器和视图。我的问题是:

    1. 技术上最好的方法是什么?应用程序位于同一服务器上,每个应用程序位于不同用户的/ home目录中,并且open_basedir限制生效,每个应用程序仅允许包含其目录中的文件。

    2. 如果放宽open_basedir限制并允许包含模型位置的文件,有什么安全隐患?我们拥有服务器,因此进行任何更改都不是问题(尽管运行Plesk意味着我们应该从它的界面进行所有配置)。

    3. 我如何配置域?

    4. 我现在“它取决于”,但这实际上是个好主意吗?我可以看到,所有应用程序都存在过度拥挤模型的风险(尽管我肯定会在必要时将应用程序逻辑分开)。

1 个答案:

答案 0 :(得分:0)

如果应用程序位于同一服务器上。我会为其中一个域创建一个主帐户,并将其余域保留在其上。 并让应用程序确定女巫应用程序需要根据域加载。

你也可以选择这种结构

-- public_html
-----index.php ( main app )
-----/domain2
---------index.php 
-----/domain3
---------index.php 
-----/domain4
---------index.php 

-- application ( folder for common code )
---- models

-- applications ( folder for app. specific code )
---- application1 
------- controllers
------- views

然后将域停放在文件夹domain1,domain2等上......在该索引中,您可以相应地设置模型,控制器和视图路径。 通过这种方式,您可以通过域(对于本地,测试环境)访问应用程序。