Простые случаи декорации можно увидеть в документаци, или ниже:
services:
App\MyDecorator:
decorates: Symfony\Contracts\Cache\CacheInterface
decoration_priority: 10
arguments:
$varNameService: '@Foo\BarService'services:
my.super.decorator:
class: App\MyDecorator
decorates: Symfony\Contracts\Cache\CacheInterface
public: false
arguments:
- "@my.service"
- "@?logger"
- "@bar.inner"
calls:
- [setTwig, ['@twig']]А вот задекорировать HttpClientInterface для описанных http_client-ов просто не выйдет. Просто в настоящий момент (2024 год) еще не предусмотрели декорирование всех настроенных http_client-ов с помощью одного объявления декорироавния HttpClientInterface. Вернее он декорируется, но уже после того, как все настроено, поэтому нужно декорировать отдельно каждый клиент, вот так:
framework:
http_client:
scoped_clients:
my.http_client:
base_uri: 'https://api.yapro.ru'
services:
App\Service\MyHttpClientDecorator:
decorates: my.http_clientно если нужно будет задекорировать 10 настроенных http-клиентов, то тут нужно воспользоваться Compiler passes, вот так.
Комментарии
Комментариев пока нет.