【问题标题】:embedded controller vs twig extension嵌入式控制器与树枝扩展
【发布时间】:2013-06-09 12:57:29
【问题描述】:

这更像是一个讨论问题:

假设您的包中有一个组件,它由一个服务、可能是一个模型和模板组成,并且您想提供一种简单的方法将其包含在您的主模板中。

您可以提供一个树枝扩展,它在内部使用帮助器来呈现模板,例如:

{{ acme_render_component({foo: 'bar'}) }}

或者您会决定让主模板使用嵌入式控制器,例如:

{{ render(controller('AcmeBundle:CoolComponent:render', { 'foo': bar })) }}

我猜这些案例的表现不同:
使用 twig 扩展,您可能会首先使用该服务来填充模型并在模板中再次获取它。
使用控制器,您可能会按需执行服务。

有什么区别、优点或注意事项?
您什么时候应该提供其中一个或另一个,或两者都提供?

【问题讨论】:

    标签: symfony


    【解决方案1】:

    我想使用自定义 Twig 扩展的一个原因是性能。在 Twig 模板中调用“render”是一个全新的请求,它会贯穿整个 Symfony 生命周期。

    【讨论】:

    • 如果你不打算在控制器中使用渲染方法,你如何加载包含树枝扩展的树枝文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多