【问题标题】:get container parameter in my custom classes Symfony2在我的自定义类 Symfony2 中获取容器参数
【发布时间】:2015-01-26 12:09:03
【问题描述】:

我有这个类,它声明为服务。当我get() 我的服务时,我运行一些方法,这个方法需要两个参数,我想让用户在config.yml 中配置。如何在此类中获取这些参数?在我的服务定义中可能存在某种方式来做到这一点?或者我需要从 ContainerAware 扩展我的课程(如果我是对的,这是不好的做法)?谢谢!

【问题讨论】:

    标签: symfony service configuration containers


    【解决方案1】:

    您可以使用%param_name% 语法将参数注入到您的服务中

    services.yml

    services:
        your_service:
            class: Acme\DemoBundle\YourClass
            arguments: [@some.other.service, %my_parameter%]
    

    parameters.yml

    parameters:
        my_parameter: my_value
    

    【讨论】:

    • 这个可行,谢谢,但是如果我想获取某个包的配置参数怎么办?
    • 你可以在整个应用程序中使用任何定义为parameter的参数,它也可能是bundle添加的参数
    • 嗨!就我而言,我想将@service_container 注入自定义类,但是这个类必须从Controller 扩展,否则,容器为空,它是正确的还是有什么问题?坦克的建议。
    【解决方案2】:

    您可以使用构造函数调用它们

    acme.your_service:
        class: Acme\DemoBundle\YourService
        arguments: [%param1%]
    

    在课堂上

    class YourService {
       protected $param1;
    
       public function __construct($param1) {
          $this->param1 = $param1;
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多