1

我正在启动一个基于多个 Web 应用程序(Website、ControlPanel、RestAPI)的项目,每个 Web 应用程序都基于相同的 Data[bases] 和一个 MVC 框架。

为了避免并行代码维护,我想为每个应用程序使用相同的模型文件。但是当深入思考时,所有可能的方法都有一些优点和缺点。我想我会问一些专家。

可能的方法(我知道):


1.插件 ~one4all

逻辑的核心封装为部署在每个应用程序中的插件。

++ 所有应用每张表只有一个模型

-- 一个 bug 会导致 4 个应用崩溃

-- 每个应用程序有很多未使用的代码


2.重复代码 ~all4one

重复模型文件的双重维护。

++ 错误只影响一个应用程序

++ 模型不包含未使用的代码

——低效开发


3. 应用之间的API ~lonewolves

应用程序从 api 获取数据。

++ 一个代码服务于所有应用程序

-- 不常见的方法

-- 巨大的开销


4. 模型符号链接 ~lazy1

一个应用程序保存模型文件,其他应用程序将符号链接/包含它。

++ 几乎没有额外的工作要做

+- 看起来很搞笑

-- 一个错误影响所有应用程序

-- 可以限制调试


还有更多可能的方法吗?哪一个是常见的/推荐的?我不想将所有应用程序的功能合二为一,以免一拉就崩溃。

非常欢迎更多的方法和想法。先感谢您。

4

2 回答 2

0

您错过的一种选择是将项目保持为一个。您可以只创建一个项目,然后用控制器划分部分,而不是拆分模型,从而在三个或更多单独的项目中维护它。虽然这种方法可以创建一个项目的怪物,但它也可以保存在一个地方,并且许多控制器可以将项目分成易于管理的部分。

如果是我,并且我想将这些项目保留为单独的 cakephp 项目,我可能最终会重复代码。复制和粘贴还不错。这就是我在我工作的网站上所做的,以便将测试和生产分开。

虽然,我也可能会尝试包含包含相同代码的单独文件。即使您使用的是 cakephp,您也可以使用 php 代码。如果你 require() 包含 cakephp 逻辑的文件怎么办。不确定这是否有效,但我至少会尝试一下。

于 2019-02-08T15:23:07.103 回答
0

在项目中实现 SOLID。有效的所有框架。

于 2019-02-08T13:35:46.093 回答