Skip to content

Commit 4933e0d

Browse files
committed
injected Http PSR Bindings automatically
1 parent 31a48f5 commit 4933e0d

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

src/ClientFactory.php

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,16 @@
1010
use Laudis\Neo4j\Common\Uri;
1111
use Laudis\Neo4j\Contracts\AuthenticateInterface;
1212
use Laudis\Neo4j\Databags\DriverConfiguration;
13+
use Laudis\Neo4j\Databags\HttpPsrBindings;
1314
use Laudis\Neo4j\Databags\SessionConfiguration;
1415
use Laudis\Neo4j\Databags\SslConfiguration;
1516
use Laudis\Neo4j\Databags\TransactionConfiguration;
1617
use Laudis\Neo4j\Enum\AccessMode;
1718
use Laudis\Neo4j\Enum\SslMode;
1819
use Neo4j\Neo4jBundle\DependencyInjection\Configuration;
20+
use Psr\Http\Client\ClientInterface;
21+
use Psr\Http\Message\RequestFactoryInterface;
22+
use Psr\Http\Message\StreamFactoryInterface;
1923

2024
/**
2125
* @psalm-import-type SessionConfigArray from Configuration
@@ -39,6 +43,9 @@ public function __construct(
3943
private array|null $sessionConfiguration,
4044
private array|null $transactionConfiguration,
4145
private array $connections,
46+
private ClientInterface|null $client,
47+
private StreamFactoryInterface|null $streamFactory,
48+
private RequestFactoryInterface|null $requestFactory,
4249
) {}
4350

4451
public function create(): SymfonyClient
@@ -72,7 +79,7 @@ public function create(): SymfonyClient
7279

7380
private function makeDriverConfig(): DriverConfiguration
7481
{
75-
return new DriverConfiguration(
82+
$config = new DriverConfiguration(
7683
userAgent: $this->driverConfig['user_agent'] ?? null,
7784
httpPsrBindings: null,
7885
sslConfig: $this->makeSslConfig($this->driverConfig['ssl'] ?? null),
@@ -81,6 +88,21 @@ private function makeDriverConfig(): DriverConfiguration
8188
acquireConnectionTimeout: $this->driverConfig['acquire_connection_timeout'] ?? null,
8289
semaphore: null,
8390
);
91+
92+
$bindings = new HttpPsrBindings();
93+
if ($this->client) {
94+
$config = $config->withHttpPsrBindings($bindings->withClient($this->client));
95+
}
96+
97+
if ($this->streamFactory) {
98+
$config = $config->withHttpPsrBindings($bindings->withStreamFactory($this->streamFactory));
99+
}
100+
101+
if ($this->requestFactory) {
102+
$config = $config->withHttpPsrBindings($bindings->withRequestFactory($this->requestFactory));
103+
}
104+
105+
return $config;
84106
}
85107

86108
private function makeSessionConfig(): SessionConfiguration

0 commit comments

Comments
 (0)