Symfony多个站点

Gab*_*tos 10 php symfony

我有一个Symfony2核心,用于域A和域B.但是,如果我更新核心,我需要更新两次,因为我不知道如何只配置一个核心,多个域与他们的配置/数据库.

建议?

Xoc*_*zin 8

将"web"目录的副本复制到每个域的"public_html"文件夹中(假设您在Linux上运行Apache)

这个"web"目录包含站点的前端控制器(app.php和app_dev.php),找到它们并在您喜欢的文本编辑器上编辑它们.找到这一行:

require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
Run Code Online (Sandbox Code Playgroud)

并将路径更改为核心所在的实际相对路径.它可能是这样的:

require_once __DIR__.'/../the_core_is_here/app/bootstrap.php.cache';
require_once __DIR__.'/../the_core_is_here/app/AppKernel.php';
Run Code Online (Sandbox Code Playgroud)

这很灵活,可以根据需要进行组织,但要确保这两行具有正确的路径

请记住,您在HTML中包含的所有资产(JS,CSS,图像......)都与前端控制器位置有关,因此您需要使用其所在域名的完整URL链接它们复制它们他们也到B域使用资产

最后你会有类似的东西:

/
.. home
.. .. DOMAINA
.. .. .. public_html
.. .. .. .. app.php
.. .. .. .. img
.. .. .. .. .. image.png
.. .. DOMAINB
.. .. .. public_html
.. .. .. .. app.php
.. .. .. .. img
.. .. .. .. .. image.png
.. .. the_core_is_here
.. .. .. app
.. .. .. src
.. .. .. bin
.. .. .. vendor
Run Code Online (Sandbox Code Playgroud)

现在您的应用程序应该有2个入口点.你甚至可以在每个上面放置不同的CSS和图像,以赋予它们不同的方面.

  • 您需要添加多个实体管理器(每个数据库一个)(http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html),然后根据所访问的域选择正确的实体管理器(查找)在REQUEST对象上.如果你想扩展它,建立一个服务来做到这一点.希望这有帮助. (2认同)