How to access an application parameters from a service?

后端 未结 9 795
梦如初夏
梦如初夏 2020-12-23 10:49

From my controllers, I access the application parameters (those in /app/config) with

$this->container->getParameter(\'my_param\')
<         


        
9条回答
  •  庸人自扰
    2020-12-23 11:37

    As solution to some of issues mentioned, I define an array parameter then inject it. Adding a new parameter later just requires addition to parameter array without any change to service_container arguments or construct.

    So extending on @richsage answer:

    parameters.yml

    parameters:
        array_param_name:
            param_name_1:   "value"
            param_name_2:   "value"
    

    services.yml

    services:
        my_service:
            class:  My\Bundle\Service\MyService
            arguments: [%array_param_name%]
    

    Then access inside class

    public function __construct($params)
    {
        $this->param1 = array_key_exists('param_name_1',$params)
            ? $params['param_name_1'] : null;
        // ...
    }
    

提交回复
热议问题