@@ -48,7 +48,7 @@ discard block |
||
48 | 48 | // from the current `foo` scope |
49 | 49 | self::assertInstanceOf(KVLogger::class, $logger); |
50 | 50 | |
51 | - for ($i = 0; $i < 10; $i++) { |
|
51 | + for ($i = 0; $i < 10; $i++){ |
|
52 | 52 | // because of proxy |
53 | 53 | self::assertNotInstanceOf(KVLogger::class, $carrier->getLogger()); |
54 | 54 | self::assertSame('kv', $carrier->logger->getName()); |
@@ -68,7 +68,7 @@ discard block |
||
68 | 68 | // from the current `foo` scope |
69 | 69 | self::assertInstanceOf(FileLogger::class, $logger); |
70 | 70 | |
71 | - for ($i = 0; $i < 10; $i++) { |
|
71 | + for ($i = 0; $i < 10; $i++){ |
|
72 | 72 | // because of proxy |
73 | 73 | self::assertNotInstanceOf(FileLogger::class, $carrier->getLogger()); |
74 | 74 | self::assertSame('file', $carrier->logger->getName()); |
@@ -85,14 +85,14 @@ discard block |
||
85 | 85 | $root = new Container(); |
86 | 86 | $root->getBinder('http')->bindSingleton(LoggerInterface::class, KVLogger::class); |
87 | 87 | |
88 | - $root->runScope(new Scope(), static function (Container $c1) { |
|
88 | + $root->runScope(new Scope(), static function (Container $c1){ |
|
89 | 89 | $c1->runScope( |
90 | 90 | new Scope(name: 'http'), |
91 | 91 | static function ( |
92 | 92 | ScopedProxyLoggerCarrier $carrier, |
93 | 93 | ScopedProxyLoggerCarrier $carrier2, |
94 | 94 | LoggerInterface $logger, |
95 | - ) { |
|
95 | + ){ |
|
96 | 96 | // from the current `foo` scope |
97 | 97 | self::assertInstanceOf(KVLogger::class, $logger); |
98 | 98 | |
@@ -112,10 +112,10 @@ discard block |
||
112 | 112 | $root = new Container(); |
113 | 113 | $root->getBinder('foo')->bind(LoggerInterface::class, KVLogger::class); |
114 | 114 | |
115 | - $root->runScope(new Scope(), static function (Container $c1) { |
|
115 | + $root->runScope(new Scope(), static function (Container $c1){ |
|
116 | 116 | $c1->runScope( |
117 | 117 | new Scope(name: 'foo'), |
118 | - static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger) { |
|
118 | + static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger){ |
|
119 | 119 | // from the current `foo` scope |
120 | 120 | self::assertInstanceOf(KVLogger::class, $logger); |
121 | 121 | |
@@ -136,7 +136,7 @@ discard block |
||
136 | 136 | ->bind( |
137 | 137 | ContextInterface::class, |
138 | 138 | new \Spiral\Core\Config\Injectable( |
139 | - new class implements InjectorInterface { |
|
139 | + new class implements InjectorInterface{ |
|
140 | 140 | public function createInjection(\ReflectionClass $class, mixed $context = null): Context |
141 | 141 | { |
142 | 142 | return new Context($context); |
@@ -145,8 +145,8 @@ discard block |
||
145 | 145 | ), |
146 | 146 | ); |
147 | 147 | |
148 | - $root->runScope(new Scope(), static function (Container $c1) { |
|
149 | - $c1->runScope(new Scope(name: 'foo'), static function (Container $c, ContextInterface $param) { |
|
148 | + $root->runScope(new Scope(), static function (Container $c1){ |
|
149 | + $c1->runScope(new Scope(name: 'foo'), static function (Container $c, ContextInterface $param){ |
|
150 | 150 | self::assertInstanceOf(ReflectionParameter::class, $param->value); |
151 | 151 | self::assertSame('param', $param->value->getName()); |
152 | 152 | |
@@ -177,7 +177,7 @@ discard block |
||
177 | 177 | ->bind( |
178 | 178 | ContextInterface::class, |
179 | 179 | new \Spiral\Core\Config\Injectable( |
180 | - new class implements InjectorInterface { |
|
180 | + new class implements InjectorInterface{ |
|
181 | 181 | public function createInjection(\ReflectionClass $class, mixed $context = null): Context |
182 | 182 | { |
183 | 183 | return new Context($context); |
@@ -187,15 +187,15 @@ discard block |
||
187 | 187 | ); |
188 | 188 | |
189 | 189 | FiberHelper::runFiberSequence( |
190 | - static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $ctx) { |
|
191 | - for ($i = 0; $i < 10; $i++) { |
|
190 | + static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $ctx){ |
|
191 | + for ($i = 0; $i < 10; $i++){ |
|
192 | 192 | self::assertInstanceOf(ReflectionParameter::class, $ctx->getValue(), 'Context injected'); |
193 | 193 | self::assertSame('ctx', $ctx->getValue()->getName()); |
194 | 194 | \Fiber::suspend(); |
195 | 195 | } |
196 | 196 | }), |
197 | - static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $context) { |
|
198 | - for ($i = 0; $i < 10; $i++) { |
|
197 | + static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $context){ |
|
198 | + for ($i = 0; $i < 10; $i++){ |
|
199 | 199 | self::assertInstanceOf(ReflectionParameter::class, $context->getValue(), 'Context injected'); |
200 | 200 | self::assertSame('context', $context->getValue()->getName()); |
201 | 201 | \Fiber::suspend(); |
@@ -256,10 +256,10 @@ discard block |
||
256 | 256 | { |
257 | 257 | $root = new Container(); |
258 | 258 | $context = (object)['destroyed' => false]; |
259 | - $class = new class($context) implements DestroyableInterface { |
|
259 | + $class = new class($context) implements DestroyableInterface{ |
|
260 | 260 | public function __construct( |
261 | 261 | private readonly \stdClass $context, |
262 | - ) { |
|
262 | + ){ |
|
263 | 263 | } |
264 | 264 | |
265 | 265 | public function __destruct() |
@@ -287,7 +287,7 @@ discard block |
||
287 | 287 | new Scope('http'), |
288 | 288 | static function () use ($root, $proxy) { |
289 | 289 | self::assertSame('Foo', $proxy->getName()); |
290 | - $proxy->setName(new class implements \Stringable { |
|
290 | + $proxy->setName(new class implements \Stringable{ |
|
291 | 291 | public function __toString(): string |
292 | 292 | { |
293 | 293 | return 'Bar'; |
@@ -326,7 +326,7 @@ discard block |
||
326 | 326 | |
327 | 327 | $root->runScope( |
328 | 328 | new Scope(), |
329 | - static function (#[Proxy] ContainerInterface $proxy, ContainerInterface $scoped) { |
|
329 | + static function (#[Proxy] ContainerInterface $proxy, ContainerInterface $scoped){ |
|
330 | 330 | self::assertNotSame($scoped, $proxy); |
331 | 331 | ContainerScope::runScope($proxy, static function (ContainerInterface $passed) use ($proxy, $scoped) { |
332 | 332 | self::assertNotSame($passed, $proxy); |
@@ -44,11 +44,13 @@ discard block |
||
44 | 44 | LoggerInterface::class => KVLogger::class, |
45 | 45 | ], |
46 | 46 | ), |
47 | - static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger) use ($lc) { |
|
47 | + static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger) use ($lc) |
|
48 | + { |
|
48 | 49 | // from the current `foo` scope |
49 | 50 | self::assertInstanceOf(KVLogger::class, $logger); |
50 | 51 | |
51 | - for ($i = 0; $i < 10; $i++) { |
|
52 | + for ($i = 0; $i < 10; $i++) |
|
53 | + { |
|
52 | 54 | // because of proxy |
53 | 55 | self::assertNotInstanceOf(KVLogger::class, $carrier->getLogger()); |
54 | 56 | self::assertSame('kv', $carrier->logger->getName()); |
@@ -64,11 +66,13 @@ discard block |
||
64 | 66 | LoggerInterface::class => FileLogger::class, |
65 | 67 | ], |
66 | 68 | ), |
67 | - static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger) use ($lc) { |
|
69 | + static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger) use ($lc) |
|
70 | + { |
|
68 | 71 | // from the current `foo` scope |
69 | 72 | self::assertInstanceOf(FileLogger::class, $logger); |
70 | 73 | |
71 | - for ($i = 0; $i < 10; $i++) { |
|
74 | + for ($i = 0; $i < 10; $i++) |
|
75 | + { |
|
72 | 76 | // because of proxy |
73 | 77 | self::assertNotInstanceOf(FileLogger::class, $carrier->getLogger()); |
74 | 78 | self::assertSame('file', $carrier->logger->getName()); |
@@ -85,7 +89,8 @@ discard block |
||
85 | 89 | $root = new Container(); |
86 | 90 | $root->getBinder('http')->bindSingleton(LoggerInterface::class, KVLogger::class); |
87 | 91 | |
88 | - $root->runScope(new Scope(), static function (Container $c1) { |
|
92 | + $root->runScope(new Scope(), static function (Container $c1) |
|
93 | + { |
|
89 | 94 | $c1->runScope( |
90 | 95 | new Scope(name: 'http'), |
91 | 96 | static function ( |
@@ -112,10 +117,12 @@ discard block |
||
112 | 117 | $root = new Container(); |
113 | 118 | $root->getBinder('foo')->bind(LoggerInterface::class, KVLogger::class); |
114 | 119 | |
115 | - $root->runScope(new Scope(), static function (Container $c1) { |
|
120 | + $root->runScope(new Scope(), static function (Container $c1) |
|
121 | + { |
|
116 | 122 | $c1->runScope( |
117 | 123 | new Scope(name: 'foo'), |
118 | - static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger) { |
|
124 | + static function (ScopedProxyLoggerCarrier $carrier, LoggerInterface $logger) |
|
125 | + { |
|
119 | 126 | // from the current `foo` scope |
120 | 127 | self::assertInstanceOf(KVLogger::class, $logger); |
121 | 128 | |
@@ -136,7 +143,8 @@ discard block |
||
136 | 143 | ->bind( |
137 | 144 | ContextInterface::class, |
138 | 145 | new \Spiral\Core\Config\Injectable( |
139 | - new class implements InjectorInterface { |
|
146 | + new class implements InjectorInterface |
|
147 | + { |
|
140 | 148 | public function createInjection(\ReflectionClass $class, mixed $context = null): Context |
141 | 149 | { |
142 | 150 | return new Context($context); |
@@ -145,8 +153,10 @@ discard block |
||
145 | 153 | ), |
146 | 154 | ); |
147 | 155 | |
148 | - $root->runScope(new Scope(), static function (Container $c1) { |
|
149 | - $c1->runScope(new Scope(name: 'foo'), static function (Container $c, ContextInterface $param) { |
|
156 | + $root->runScope(new Scope(), static function (Container $c1) |
|
157 | + { |
|
158 | + $c1->runScope(new Scope(name: 'foo'), static function (Container $c, ContextInterface $param) |
|
159 | + { |
|
150 | 160 | self::assertInstanceOf(ReflectionParameter::class, $param->value); |
151 | 161 | self::assertSame('param', $param->value->getName()); |
152 | 162 | |
@@ -177,7 +187,8 @@ discard block |
||
177 | 187 | ->bind( |
178 | 188 | ContextInterface::class, |
179 | 189 | new \Spiral\Core\Config\Injectable( |
180 | - new class implements InjectorInterface { |
|
190 | + new class implements InjectorInterface |
|
191 | + { |
|
181 | 192 | public function createInjection(\ReflectionClass $class, mixed $context = null): Context |
182 | 193 | { |
183 | 194 | return new Context($context); |
@@ -187,15 +198,19 @@ discard block |
||
187 | 198 | ); |
188 | 199 | |
189 | 200 | FiberHelper::runFiberSequence( |
190 | - static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $ctx) { |
|
191 | - for ($i = 0; $i < 10; $i++) { |
|
201 | + static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $ctx) |
|
202 | + { |
|
203 | + for ($i = 0; $i < 10; $i++) |
|
204 | + { |
|
192 | 205 | self::assertInstanceOf(ReflectionParameter::class, $ctx->getValue(), 'Context injected'); |
193 | 206 | self::assertSame('ctx', $ctx->getValue()->getName()); |
194 | 207 | \Fiber::suspend(); |
195 | 208 | } |
196 | 209 | }), |
197 | - static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $context) { |
|
198 | - for ($i = 0; $i < 10; $i++) { |
|
210 | + static fn() => $root->runScope(new Scope(name: 'foo'), static function (ContextInterface $context) |
|
211 | + { |
|
212 | + for ($i = 0; $i < 10; $i++) |
|
213 | + { |
|
199 | 214 | self::assertInstanceOf(ReflectionParameter::class, $context->getValue(), 'Context injected'); |
200 | 215 | self::assertSame('context', $context->getValue()->getName()); |
201 | 216 | \Fiber::suspend(); |
@@ -211,8 +226,10 @@ discard block |
||
211 | 226 | |
212 | 227 | $root->runScope( |
213 | 228 | new Scope(), |
214 | - static function (#[Proxy] ContainerInterface $cp) use ($root) { |
|
215 | - $root->runScope(new Scope(name: 'http'), static function (ContainerInterface $c) use ($cp) { |
|
229 | + static function (#[Proxy] ContainerInterface $cp) use ($root) |
|
230 | + { |
|
231 | + $root->runScope(new Scope(name: 'http'), static function (ContainerInterface $c) use ($cp) |
|
232 | + { |
|
216 | 233 | self::assertNotSame($c, $cp); |
217 | 234 | self::assertSame($c, $cp->get(ContainerInterface::class)); |
218 | 235 | self::assertInstanceOf(KVLogger::class, $cp->get(LoggerInterface::class)); |
@@ -256,7 +273,8 @@ discard block |
||
256 | 273 | { |
257 | 274 | $root = new Container(); |
258 | 275 | $context = (object)['destroyed' => false]; |
259 | - $class = new class($context) implements DestroyableInterface { |
|
276 | + $class = new class($context) implements DestroyableInterface |
|
277 | + { |
|
260 | 278 | public function __construct( |
261 | 279 | private readonly \stdClass $context, |
262 | 280 | ) { |
@@ -285,7 +303,8 @@ discard block |
||
285 | 303 | |
286 | 304 | $root->runScope( |
287 | 305 | new Scope('http'), |
288 | - static function () use ($root, $proxy) { |
|
306 | + static function () use ($root, $proxy) |
|
307 | + { |
|
289 | 308 | self::assertSame('Foo', $proxy->getName()); |
290 | 309 | $proxy->setName(new class implements \Stringable { |
291 | 310 | public function __toString(): string |
@@ -326,9 +345,11 @@ discard block |
||
326 | 345 | |
327 | 346 | $root->runScope( |
328 | 347 | new Scope(), |
329 | - static function (#[Proxy] ContainerInterface $proxy, ContainerInterface $scoped) { |
|
348 | + static function (#[Proxy] ContainerInterface $proxy, ContainerInterface $scoped) |
|
349 | + { |
|
330 | 350 | self::assertNotSame($scoped, $proxy); |
331 | - ContainerScope::runScope($proxy, static function (ContainerInterface $passed) use ($proxy, $scoped) { |
|
351 | + ContainerScope::runScope($proxy, static function (ContainerInterface $passed) use ($proxy, $scoped) |
|
352 | + { |
|
332 | 353 | self::assertNotSame($passed, $proxy); |
333 | 354 | self::assertSame($scoped, ContainerScope::getContainer()); |
334 | 355 | }); |
@@ -19,27 +19,27 @@ discard block |
||
19 | 19 | { |
20 | 20 | public static function resolve( |
21 | 21 | string $alias, |
22 | - \Stringable|string|null $context = null, |
|
22 | + \Stringable | string | null $context = null, |
|
23 | 23 | ?ContainerInterface $c = null, |
24 | 24 | ): object { |
25 | 25 | $c ??= ContainerScope::getContainer() ?? throw new ContainerException('Proxy is out of scope.'); |
26 | 26 | |
27 | - try { |
|
27 | + try{ |
|
28 | 28 | /** @psalm-suppress TooManyArguments */ |
29 | 29 | $result = $c->get($alias, $context) ?? throw new ContainerException( |
30 | 30 | 'Resolved `null` from the container.', |
31 | 31 | ); |
32 | - } catch (\Throwable $e) { |
|
32 | + }catch (\Throwable $e){ |
|
33 | 33 | $scope = self::getScope($c); |
34 | 34 | throw new ContainerException( |
35 | 35 | $scope === null |
36 | 36 | ? "Unable to resolve `{$alias}` in a Proxy." |
37 | 37 | : "Unable to resolve `{$alias}` in a Proxy in `{$scope}` scope.", |
38 | - previous: $e, |
|
38 | + previous : $e, |
|
39 | 39 | ); |
40 | 40 | } |
41 | 41 | |
42 | - if (Proxy::isProxy($result)) { |
|
42 | + if (Proxy::isProxy($result)){ |
|
43 | 43 | $scope = self::getScope($c); |
44 | 44 | throw new RecursiveProxyException( |
45 | 45 | $scope === null |
@@ -56,8 +56,8 @@ discard block |
||
56 | 56 | */ |
57 | 57 | private static function getScope(ContainerInterface $c): ?string |
58 | 58 | { |
59 | - if (!$c instanceof Container) { |
|
60 | - if (!Proxy::isProxy($c)) { |
|
59 | + if (!$c instanceof Container){ |
|
60 | + if (!Proxy::isProxy($c)){ |
|
61 | 61 | return null; |
62 | 62 | } |
63 | 63 | |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | } |
66 | 66 | |
67 | 67 | return \implode('.', \array_reverse(\array_map( |
68 | - static fn (?string $name): string => $name ?? 'null', |
|
68 | + static fn (?string $name) : string => $name ?? 'null', |
|
69 | 69 | Introspector::scopeNames($c), |
70 | 70 | ))); |
71 | 71 | } |
@@ -24,12 +24,15 @@ discard block |
||
24 | 24 | ): object { |
25 | 25 | $c ??= ContainerScope::getContainer() ?? throw new ContainerException('Proxy is out of scope.'); |
26 | 26 | |
27 | - try { |
|
27 | + try |
|
28 | + { |
|
28 | 29 | /** @psalm-suppress TooManyArguments */ |
29 | 30 | $result = $c->get($alias, $context) ?? throw new ContainerException( |
30 | 31 | 'Resolved `null` from the container.', |
31 | 32 | ); |
32 | - } catch (\Throwable $e) { |
|
33 | + } |
|
34 | + catch (\Throwable $e) |
|
35 | + { |
|
33 | 36 | $scope = self::getScope($c); |
34 | 37 | throw new ContainerException( |
35 | 38 | $scope === null |
@@ -39,7 +42,8 @@ discard block |
||
39 | 42 | ); |
40 | 43 | } |
41 | 44 | |
42 | - if (Proxy::isProxy($result)) { |
|
45 | + if (Proxy::isProxy($result)) |
|
46 | + { |
|
43 | 47 | $scope = self::getScope($c); |
44 | 48 | throw new RecursiveProxyException( |
45 | 49 | $scope === null |
@@ -56,8 +60,10 @@ discard block |
||
56 | 60 | */ |
57 | 61 | private static function getScope(ContainerInterface $c): ?string |
58 | 62 | { |
59 | - if (!$c instanceof Container) { |
|
60 | - if (!Proxy::isProxy($c)) { |
|
63 | + if (!$c instanceof Container) |
|
64 | + { |
|
65 | + if (!Proxy::isProxy($c)) |
|
66 | + { |
|
61 | 67 | return null; |
62 | 68 | } |
63 | 69 |
@@ -34,26 +34,26 @@ discard block |
||
34 | 34 | */ |
35 | 35 | public static function runScope(ContainerInterface $container, callable $scope): mixed |
36 | 36 | { |
37 | - if (Proxy::isProxy($container)) { |
|
37 | + if (Proxy::isProxy($container)){ |
|
38 | 38 | // Ignore Proxy to avoid recursion |
39 | 39 | $container = $previous = self::$container ?? throw new ContainerException('Proxy is out of scope.'); |
40 | - } else { |
|
40 | + }else{ |
|
41 | 41 | [$previous, self::$container] = [self::$container, $container]; |
42 | 42 | } |
43 | 43 | |
44 | - try { |
|
45 | - if (Fiber::getCurrent() === null) { |
|
44 | + try{ |
|
45 | + if (Fiber::getCurrent() === null){ |
|
46 | 46 | return $scope(self::$container); |
47 | 47 | } |
48 | 48 | |
49 | 49 | // Wrap scope into fiber |
50 | 50 | $fiber = new Fiber(static fn () => $scope(self::$container)); |
51 | 51 | $value = $fiber->start(); |
52 | - while (!$fiber->isTerminated()) { |
|
52 | + while (!$fiber->isTerminated()){ |
|
53 | 53 | self::$container = $previous; |
54 | - try { |
|
54 | + try{ |
|
55 | 55 | $resume = Fiber::suspend($value); |
56 | - } catch (Throwable $e) { |
|
56 | + }catch (Throwable $e){ |
|
57 | 57 | self::$container = $container; |
58 | 58 | $value = $fiber->throw($e); |
59 | 59 | continue; |
@@ -63,7 +63,7 @@ discard block |
||
63 | 63 | $value = $fiber->resume($resume); |
64 | 64 | } |
65 | 65 | return $fiber->getReturn(); |
66 | - } finally { |
|
66 | + }finally{ |
|
67 | 67 | self::$container = $previous; |
68 | 68 | } |
69 | 69 | } |
@@ -34,26 +34,35 @@ discard block |
||
34 | 34 | */ |
35 | 35 | public static function runScope(ContainerInterface $container, callable $scope): mixed |
36 | 36 | { |
37 | - if (Proxy::isProxy($container)) { |
|
37 | + if (Proxy::isProxy($container)) |
|
38 | + { |
|
38 | 39 | // Ignore Proxy to avoid recursion |
39 | 40 | $container = $previous = self::$container ?? throw new ContainerException('Proxy is out of scope.'); |
40 | - } else { |
|
41 | + } |
|
42 | + else |
|
43 | + { |
|
41 | 44 | [$previous, self::$container] = [self::$container, $container]; |
42 | 45 | } |
43 | 46 | |
44 | - try { |
|
45 | - if (Fiber::getCurrent() === null) { |
|
47 | + try |
|
48 | + { |
|
49 | + if (Fiber::getCurrent() === null) |
|
50 | + { |
|
46 | 51 | return $scope(self::$container); |
47 | 52 | } |
48 | 53 | |
49 | 54 | // Wrap scope into fiber |
50 | 55 | $fiber = new Fiber(static fn () => $scope(self::$container)); |
51 | 56 | $value = $fiber->start(); |
52 | - while (!$fiber->isTerminated()) { |
|
57 | + while (!$fiber->isTerminated()) |
|
58 | + { |
|
53 | 59 | self::$container = $previous; |
54 | - try { |
|
60 | + try |
|
61 | + { |
|
55 | 62 | $resume = Fiber::suspend($value); |
56 | - } catch (Throwable $e) { |
|
63 | + } |
|
64 | + catch (Throwable $e) |
|
65 | + { |
|
57 | 66 | self::$container = $container; |
58 | 67 | $value = $fiber->throw($e); |
59 | 68 | continue; |
@@ -63,7 +72,9 @@ discard block |
||
63 | 72 | $value = $fiber->resume($resume); |
64 | 73 | } |
65 | 74 | return $fiber->getReturn(); |
66 | - } finally { |
|
75 | + } |
|
76 | + finally |
|
77 | + { |
|
67 | 78 | self::$container = $previous; |
68 | 79 | } |
69 | 80 | } |