如何将我的symfony2项目一分为二?这样我就可以在不同的服务器中托管不同的捆绑包,并在另一台服务器中托管资产


How to split my symfony2 project into two ? So that i can host different bundles in different servers and assets in another server

我正在做一个大型的Symfony2项目,该项目有八个具有相互依赖的不同功能的捆绑包(例如:AdminBundle,UserBundle,StoreBundle等(。现在我想将我的项目分为 admin 和 main,如下所示,这样我就可以在不同的服务器(使用相同的数据库(中维护每个服务器,并拥有单独的服务器来维护用户上传的图像和视频。请指导我


    Project_Admin应用
    源
    供应商
    等。。


    Project_main应用
    源
    供应商
    等。。


    Project_Assets网
    等。。

在不同的服务器上不可能只有一个项目,但是在服务器之间一起通信的多symfony项目。

你确定你的捆绑包与PHP代码没有相互关系吗?(实体、服务等(。这很难做到,但可能是的。

您的项目资产不得是在处理其他捆绑包时生成的资产,因为其他捆绑包不在同一台服务器上。

您可以将所有概念或通信捆绑包与API Rest联系起来。但如果没有,你将在远程服务器之间拥有相互依赖的引擎symfony。

Symfony为一个项目生成大量的技术文件。如果此文件在其他远程服务器之间必须相同,则是不可能的。

您的问题涉及在不同服务器(Web服务器和AppServer(上使用共享逻辑的Java概念实现。也许用这个实现你的问题的想法。

您还可以围绕模板概念设计体系结构。所有捆绑包 所有用于生成渲染网页的远程捆绑包。有了这个,您可以拆开其他捆绑包上的资产和所有视觉逻辑。

如果没有大量的工作,你的问题不容易用Symfony的标准概念实现......但是您可以将相同的捆绑包集成到其他远程项目 symfony 中,并保持代码版本完全相同。有了这个,您可以轻松地在许多远程项目symfony中共享1个网站。示例:如果公司和后端不是很相关,则站点的公司部分位于 1 台服务器中,后端部分位于其他服务器中。

在处理数据库时,我的事情不是很困难,因为(和IF(数据与您的技术逻辑过程无关(这与PHP代码更相似(

一种方法是将非特定于应用程序的代码放入捆绑包中,这些捆绑包被视为将安装到vendor/目录中的其他第三方捆绑包。 例如,假设您的公司名称是 Acme,您可以为每个捆绑包创建命名空间,例如 Acme''StoreBundleAcme''CommonBundle,无论您喜欢什么。 这些都将在您的composer.json中进行版本控制,并安装到 vendor/acme/storevendor/acme/common 等目录中。

从那里,创建 2 个应用程序,一个用于您的管理员,一个用于您的 Main,您将在其中放置特定于应用程序的代码。