10
10
use Laudis \Neo4j \Common \Uri ;
11
11
use Laudis \Neo4j \Contracts \AuthenticateInterface ;
12
12
use Laudis \Neo4j \Databags \DriverConfiguration ;
13
+ use Laudis \Neo4j \Databags \HttpPsrBindings ;
13
14
use Laudis \Neo4j \Databags \SessionConfiguration ;
14
15
use Laudis \Neo4j \Databags \SslConfiguration ;
15
16
use Laudis \Neo4j \Databags \TransactionConfiguration ;
16
17
use Laudis \Neo4j \Enum \AccessMode ;
17
18
use Laudis \Neo4j \Enum \SslMode ;
18
19
use Neo4j \Neo4jBundle \DependencyInjection \Configuration ;
20
+ use Psr \Http \Client \ClientInterface ;
21
+ use Psr \Http \Message \RequestFactoryInterface ;
22
+ use Psr \Http \Message \StreamFactoryInterface ;
19
23
20
24
/**
21
25
* @psalm-import-type SessionConfigArray from Configuration
@@ -39,6 +43,9 @@ public function __construct(
39
43
private array |null $ sessionConfiguration ,
40
44
private array |null $ transactionConfiguration ,
41
45
private array $ connections ,
46
+ private ClientInterface |null $ client ,
47
+ private StreamFactoryInterface |null $ streamFactory ,
48
+ private RequestFactoryInterface |null $ requestFactory ,
42
49
) {}
43
50
44
51
public function create (): SymfonyClient
@@ -72,7 +79,7 @@ public function create(): SymfonyClient
72
79
73
80
private function makeDriverConfig (): DriverConfiguration
74
81
{
75
- return new DriverConfiguration (
82
+ $ config = new DriverConfiguration (
76
83
userAgent: $ this ->driverConfig ['user_agent ' ] ?? null ,
77
84
httpPsrBindings: null ,
78
85
sslConfig: $ this ->makeSslConfig ($ this ->driverConfig ['ssl ' ] ?? null ),
@@ -81,6 +88,21 @@ private function makeDriverConfig(): DriverConfiguration
81
88
acquireConnectionTimeout: $ this ->driverConfig ['acquire_connection_timeout ' ] ?? null ,
82
89
semaphore: null ,
83
90
);
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 ;
84
106
}
85
107
86
108
private function makeSessionConfig (): SessionConfiguration
0 commit comments