我正在做一个大型的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''StoreBundle、Acme''CommonBundle,无论您喜欢什么。 这些都将在您的composer.json
中进行版本控制,并安装到 vendor/acme/store
和 vendor/acme/common
等目录中。
从那里,创建 2 个应用程序,一个用于您的管理员,一个用于您的 Main,您将在其中放置特定于应用程序的代码。