Как правильно определить аргументы определения сервиса в приложении Symfony 3.4 - PullRequest
0 голосов
/ 25 октября 2018

Как правильно определить аргументы определения службы в приложении Symfony 3.4?

Я заметил, что все следующие условия действительны:

AppBundle\Services\RFC\Spackman:
    arguments:
        $watpSdk: '@watp.client'
    calls:
        - [setPlayerName, ['%p_name%']]

AppBundle\Services\RFC\Gordon:
    $client: '@crmpicco.client'

zendesk.client:
    class: Zendesk\API\HttpClient
    arguments:
       - '%zendesk_subdomain%'

Официальные документы говорят это,однако я не уверен, какой правильный стандарт:

Новое в версии 3.3: возможность настройки аргумента по его имени ($ adminEmail) была добавлена ​​в Symfony 3.3.Ранее его можно было настроить только по его индексу (в данном случае 2) или по пустым кавычкам для других аргументов.

1 Ответ

0 голосов
/ 25 октября 2018
  • Когда вы используете дефисы, он передает аргументы для конструктора / фабрики вашего сервиса.
  • Когда вы используете "$ argname", он передает аргументы на основе имени параметра конструктора / фабрики.
  • Вы также можете использовать «index_ #» для подачи аргумента по определенному индексу.

Любой из них является правильным способом сделать это.Я предпочитаю использовать дефисы, поскольку, если вы когда-нибудь проведете рефакторинг имени параметра, вам не придется также рефакторировать его в вашей конфигурации.

Я также использую «index_ #», когда мне нужно расширить определение сервиса и заменитьодин из аргументов, определенных в родительском сервисе.

Это вопрос вкуса, поскольку расширение сервиса можно полностью игнорировать.

...