Переопределить определение службы класса в Symfony в конкретной среде с помощью фабрикиPhp

Кемеровские программисты php общаются здесь
Anonymous
Переопределить определение службы класса в Symfony в конкретной среде с помощью фабрики

Сообщение Anonymous »

Если у меня есть простое определение клиента Guzzle, например, в моей производственной среде:

Код: Выделить всё

GuzzleHttp\Client: ~
Это гарантирует, что клиент Guzzle всегда будет доступен для внедрения, и это работает нормально.
Но в среде разработки я бы хотел создайте клиент с собственной фабрикой, которая подключает все виды промежуточного программного обеспечения и конфигураций отладки, поэтому я бы поместил это в свой файл Services_dev.yml

Код: Выделить всё

  GuzzleHttp\Client:
factory: ['@Factories\GuzzleFactory', 'createClient']
arguments:
- handler: '@custom.debugging.guzzle.stack'
Это также отлично работает, при условии, что я напрямую использую GuzzleHttp\Client в своем конструкторе.
Но все начинает ломаться, когда у меня есть специальные службы этот класс, это еще больше расширит его.

Код: Выделить всё

custom.client:
class: GuzzleHttp\Client
arguments:
- handler: '@custom.guzzle.stack'
Я бы хотел, чтобы этот custom.client создавался ТОЛЬКО на заводе в среде разработки.
Даже если он определен как класс типа GuzzleHttp\Client, фабрика GuzzleHttp\Client в переопределенном определении не используется.
Что я делаю не так? В идеале я не хочу определять фабрику в моем файле Production.yml, потому что она используется исключительно для добавления отладочной информации

Подробнее здесь: https://stackoverflow.com/questions/785 ... -with-a-fa

Вернуться в «Php»