Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 我应该为多个站点使用单个框架代码库还是为每个站点使用一个框架代码库?_Oop_Frameworks_Coldfusion_Installation_Dry - Fatal编程技术网

Oop 我应该为多个站点使用单个框架代码库还是为每个站点使用一个框架代码库?

Oop 我应该为多个站点使用单个框架代码库还是为每个站点使用一个框架代码库?,oop,frameworks,coldfusion,installation,dry,Oop,Frameworks,Coldfusion,Installation,Dry,情况如下: 使用某个框架构建多个站点 所有站点都托管在同一台服务器上 每个站点都有自己的数据库 由于所有站点都位于同一位置,并且它们都有共同的框架代码,因此我可以轻松地在服务器上安装一次框架,并让每个站点使用与其框架代码相同的文件。 这样,我只有一个框架安装,是所有的网站使用 第二种选择是让每个站点使用自己的框架安装 选项1的赞成和反对意见: 只需要为多个网站的框架维护一个代码库 框架更新立即适用于所有网站 如果一个站点对框架有不同的需求,或者有与最新框架版本不再兼容的代码,则需要定制框架

情况如下:

  • 使用某个框架构建多个站点
  • 所有站点都托管在同一台服务器上
  • 每个站点都有自己的数据库
由于所有站点都位于同一位置,并且它们都有共同的框架代码,因此我可以轻松地在服务器上安装一次框架,并让每个站点使用与其框架代码相同的文件。 这样,我只有一个框架安装,是所有的网站使用

第二种选择是让每个站点使用自己的框架安装

选项1的赞成和反对意见:

  • 只需要为多个网站的框架维护一个代码库
  • 框架更新立即适用于所有网站
  • 如果一个站点对框架有不同的需求,或者有与最新框架版本不再兼容的代码,则需要定制框架兼容性补丁。(并非总是有时间或预算来保持遗留项目与最新框架版本兼容)
选项2的赞成和反对意见:

  • 为每个站点提供单独的框架,以维护
  • 框架更新必须分别应用于每个站点
  • 如果一个站点对框架有不同的需求,或者没有与最新框架更新兼容的预算,我们就不更新该站点的框架安装
  • 如果确实有必要,站点可以快速修改其框架以满足需要,而不会干扰服务器上的其他站点
因此,选项1似乎更容易维护,而选项2则更灵活。我不知道什么是最重要的。
这两个选项中哪一个是总体上最好的选择?或者有更多的选择吗?

就我个人而言,我将始终让每个站点使用自己的框架代码库,或者至少使用一个固定版本的共享代码库。共享框架的问题在于,每次更新时,您都必须使用共享的代码库测试每个站点,以确保它们仍能按预期工作。当框架不推荐您在某个站点中使用的功能时,会发生什么情况?它可能会阻止您进行更新,使您面临安全问题


选项2确实会给您带来更多的维护开销,但在我看来,这是最安全的方法。

我的做法略有不同

我会有这样一个dir结构:

/sites/
    /site1/
    /site2/
    [etc]
/framework/
    /1.0/
    /1.1/
    /1.x/
    [etc]

然后在每个站点中都有一个/framework映射,该映射指向站点正在使用的框架的版本。这样,每个站点的框架版本都独立于其他站点:如果一个站点需要与其他站点不同的框架版本(停留在旧版本上,在其他站点使用它进行测试之前需要新版本),那么您可以控制这种粒度。同样,在
/framwork/nightly/
中更改代码库(例如)将“自动”更新所有站点,使其/framework映射指向代码库的最新版本。

这取决于几个因素

有多少开发者在这些网站上工作?该框架是否得到良好的支持和记录?是否有更好的框架可用(通过文档、开销(内存占用)和社区支持更好)。哪种选择在未来12个月或更长时间内看起来更好

选择1吸引人的是它的一致性和熟悉性


选择2对其潜力、学习和未来增长具有吸引力。

选择2始终如此。始终将您的全局状态降至最低。我同意此解决方案。建立一个“平台”。除了框架之外,内部服务常常可以在多个站点上使用。