gpt4 book ai didi

symfony - 如何构建 Symfony 2 应用程序以支持多个应用程序?

转载 作者:行者123 更新时间:2023-12-02 01:54:11 25 4
gpt4 key购买 nike

背景

我们计划将当前代码迁移到 Symfony2 项目。

在我们的案例中,每个应用程序都被视为我们开展业务的国家/地区。因此:

  • 每个应用程序都有一个唯一的顶级域。
  • 每个应用程序都将具有相同的子域。
  • 每个应用程序都有自己的数据库。每个应用程序的数据库结构都是相同的。
  • 应用程序将共享相同的业务逻辑。业务逻辑上的任何差异都将抽象到一个配置文件中。应该有一个基本配置文件,应用程序可以使用特定于应用程序的配置覆盖它。
  • 应用程序将共享大部分模板,但也可能有特定于应用程序的模板。

可能的方法

  1. 多个 repo
    • 每个应用程序本身就是一个 Symfony2 项目。
    • 所有开发都将在 bundle 中进行,每个应用程序通过 composer 加载相同的 bundle 。
    • 这种方法会使开发变得非常麻烦。理想情况下,我想在不运行 composer 等的情况下测试所有国家/地区的任何更改。
  2. 具有多个内核的单个存储库中的多个应用
    • 每个应用程序都会在 app/ 文件夹中有自己的应用程序,如 here 中所建议的那样.
    • 复制整个应用程序文件夹似乎有点老套。不确定这是否是推荐的做法?
  3. 修改 Symfony2 以支持多个应用程序
    • 修改 Symfony2 Kernel/Console/Whatever 以支持多个应用程序。
    • 是否有任何现有的 bundle /示例已经这样做了?
  4. [这里是你的想法]
    • 还有其他可能的方法吗?

问题

在 Symfony2 中添加对多个应用程序的支持的最佳方法是什么?

最佳答案

  1. 这是一个很好的方法,但如果您发现您正在共享大量代码...

  2. Symfony2 的创建者不推荐这种做法。如果您需要多个内核,您很可能需要多个项目。 https://groups.google.com/d/msg/symfony-devs/yneojUuFiqw/sZ8BZrzFLbwJ

  3. IDK

  4. 对于我构建的项目,更改来自 $_GET 参数。我所做的是,我有一个主要的项目包,它处理通用功能并引用应用程序/ View 以进行基本布局。在“核心”功能中,我创建了一个 Controller 并将其用作服务,以便我所有特定于应用程序的包都可以随时使用它。然后我为每个特定于应用程序的配置定义创建一个 Symfony2 扩展,以便每个应用程序都可以拥有 yml 配置,同时在 app/config/config.yml 中保留高级配置。这样做的一个优点是,在 CoreBundle 的 Controller 中,我可以创建通用页面路由并呈现如下:

    $this->render('Name'.$project.'Bundle:index.html.twig', array('params' => $params));

关于symfony - 如何构建 Symfony 2 应用程序以支持多个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com