gpt4 book ai didi

symfony - 什么时候使用扩展类,什么时候在 Symfony 中使用编译器 channel ?

转载 作者:行者123 更新时间:2023-12-03 16:54:23 24 4
gpt4 key购买 nike

在 Symfony 中使用编译器传递有什么意义?

我们什么时候应该使用扩展类,什么时候编译器在 Symfony 中传递?

最佳答案

它们带有服务定义。

通过创建编译器传递,您可以更新传递给服务的参数。

它最常使用标记的服务来完成。

此外,它可用于:

  • 创建新服务,在定义之前需要有关其他已定义服务的信息。
  • 将参数交换或添加到您未编写的服务。
  • 在容器中创建和修改参数。

  • 我使用编译器传递来注册一个工厂,使我能够覆盖学说存储库。

    您可以查看代码以更好地理解其工作原理:

    https://gist.github.com/chalasr/77be8eee5e3ecd3c06ec

    更新

    感谢@Sruj,我添加了我忘记的部分 Extension Extension也是依赖注入(inject)的一部分,尤其是配置。
    它的主要作用是跨应用程序包加载服务配置。

    而不是使用 imports 手动加载配置,您可以创建一个为您执行此操作的扩展程序。您的所有服务配置都从您的包中注册并在您的整个应用程序中共享。

    当您在应用配置中注册供应商时,会调用供应商的服务容器扩展。

    "Importing configuration via container extensions"部分文档

    关于symfony - 什么时候使用扩展类,什么时候在 Symfony 中使用编译器 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35258601/

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