【问题标题】:Refactor old functionality in symfony project重构 symfony 项目中的旧功能
【发布时间】:2018-05-25 10:08:37
【问题描述】:

我需要从旧的 symfony 项目中重构我的代码。我有类似模板提供程序的东西。每个模板都是单独的捆绑包,带有自己的表单、树枝模板、提供者(我有模板名称和树枝文件的路径)和 services.yml。现在我可以把它放在一个捆绑包中,我需要一个建议,我怎样才能以最好的方式做到这一点。每个包仍然必须有单独的树枝文件(有依赖于模板类型的脚本和来自表单的数据)。但也许有一些自动以动态方式生成表单(很多表单只有一个带有 id 的字段)?您将如何设计一个系统来生成具有自己的表单的模板和使用这些表单中的变量的 twig 文件?不幸的是,我无法提供该项目的源代码。 问候

【问题讨论】:

    标签: php symfony architecture refactoring


    【解决方案1】:

    Bundle 在 Symfony 3.4 中被弃用,并且在 Symfony 4 中禁用事件,除非你正在创建一个你打算重新分发的包。

    如果对您很重要,我建议您将代码分隔在不同的命名空间中。

    对于 twig 模板,从 Symfony 3.4 开始,您可以将它们存储在项目目录根目录的 templates/ 目录中。同样,如果需要,可以将它们存储在与不同命名空间匹配的不同子目录中。

    见作者博客:Symfony 4: Directory Structure | Articles - Fabien Potencier

    [编辑] 作为 Cerad cmets,我错了。捆绑包没有被弃用或禁用。 Bundle 继承在 Symfony 3.4 中被弃用,在 Symfony 4 中被禁用。

    在此处查看详细信息:New in Symfony 3.4: Deprecated bundle inheritance (Symfony Blog)

    【讨论】:

    • 不,捆绑包在 3.4 中既不会折旧,也不会在 S4 中禁用。很长一段时间以来一直建议不要将应用程序代码分成包,但如果设计需要,您仍然可以这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多