symfony - Symfony 代码在不同域上的不同项目之间的可维护性
问题描述
我在 Symfony 4 中有两个独立的项目。第一个项目将由客户使用,而第二个项目将由员工使用。这两个项目使用相同的实体、存储库、命名空间、配置等。项目之间的唯一区别是控制器及其内容。关于单独项目的一些限制:
域公共(客户使用)
- 公共服务器,因此任何人都可以连接到此服务器。
- 有时启动并运行(在线)。其他时候,它关闭并且没有运行(离线),导致用户在 Google Chrome 上看到“无法访问此站点”错误,例如。
- 不需要客户端证书
域私有(由员工使用)
- 只能通过本地网络访问。
- 始终启动并运行(在线)
- 需要客户端证书
如您所见,公共领域有一些奇怪的要求,这些都是为了最大程度的安全。为了在同一台服务器上托管两个项目,我在 Apache 上使用了虚拟主机并正确配置了它们。
现在我有以下问题:任何不在控制器内部的机会,我也必须手动复制并粘贴到第二个项目中。所以我希望两个域,两个网站,共享相同的资源,所以我只需要在一个地方编辑它们。我怎么能做到这一点?我想两个解决方案:
- 将两个项目合并为一个,以便它们共享相同的资源。这样他们将共享相同的实体等等,我可以在默认控制器目录中为每个域创建一个单独的目录。但我认为这在我的限制下是不可能的。
- 因此,在我的 Web 根目录中,每个项目都有两个单独的目录。我可以创建第三个目录,其中包含所有共享文件(基本上除了控制器之外的每个文件)。但是我如何引用我的自定义实体之类的共享文件,以及 composer.json,因为这两个项目将使用完全相同的依赖项。
如果有人可以就如何解决这个问题给我一些建议,那将有很大帮助!
解决方案
推荐阅读
- php - PHPMailer - 工作时总是显示消息
- javascript - Javascript函数只运行一次?尝试多次使用相同的功能
- javascript - Javascript 回调 - 为什么它不起作用?
- php - 如何在 Woocommerce 中获取特定帖子 ID 的所有可用变体 ID?
- python - 请先构建并安装 PortAudio Python 绑定
- python - NLTK、NUMPY 和 SCIPY - 无法导入
- reactjs - 如何在 ReactJS 中使用多个对话框和渲染模式
- java - 单击/聚焦时如何在 JFormattedTextField 末尾设置插入符号位置?
- python - 跨(ana)conda 环境的校准程序
- matlab - 在 MATLAB Coder 中创建用于指定数组大小的常量