Я предлагаю использовать адаптер .
namespace Foo\Bar;
class MyGrpcClientAdapter
{
private $grpcClient;
public function __construct()
{
$this->grpcClient = new MyGrpcClient($_ENV['GRPC_HOST'], [
'credentials' => \Grpc\ChannelCredentials::createInsecure(),
]);
}
public function doSomethingAdaptive(): void
{
//...
}
}
, который можно настроить для отложенной загрузки в контейнер Symfony с помощью:
Foo\Bar\MyGrpcClientAdapter:
class: 'Foo\Bar\MyGrpcClientAdapter'
You можно реорганизовать адаптер для использования настраиваемых (хост) значений следующим образом:
public function __construct(string $host)
{
$this->grpcClient = new MyGrpcClient($host], [
'credentials' => \Grpc\ChannelCredentials::createInsecure(),
]);
}
Передача (например) значения .env
.
Foo\Bar\MyGrpcClientAdapter:
class: 'Foo\Bar\MyGrpcClientAdapter'
arguments:
- '%env(APP_HOSTNAME)%'