Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitec7df4d

Browse files
committed
[Runtime] apply pr suggestions
1 parentd0e0e95 commitec7df4d

File tree

4 files changed

+42
-15
lines changed

4 files changed

+42
-15
lines changed

‎src/Symfony/Component/Runtime/Runner/Middleware/MiddlewareFactory.php‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<?php
22

3-
declare(strict_types=1);
4-
53
/*
64
* This file is part of the Symfony package.
75
*
@@ -15,14 +13,15 @@
1513

1614
/**
1715
* @author Sascha Heilmeier <sascha.heilmeier@netlogix.de>
16+
* @internal
1817
*/
19-
readonlyclass MiddlewareFactory
18+
finalclass MiddlewareFactory
2019
{
2120
/**
22-
* @param class-string<MiddlewareInterface> ...$middleware
21+
* @param class-string<MiddlewareInterface>[]$middleware
2322
* @return \Generator<MiddlewareInterface>
2423
*/
25-
publicfunctioncreate(string ...$middleware):\Generator
24+
publicfunctioncreate(array$middleware):\Generator
2625
{
2726
foreach ($middlewareas$middlewareClass) {
2827
yieldnew$middlewareClass();

‎src/Symfony/Component/Runtime/Runner/Middleware/MiddlewareInterface.php‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<?php
22

3-
declare(strict_types=1);
4-
53
/*
64
* This file is part of the Symfony package.
75
*

‎src/Symfony/Component/Runtime/SymfonyRuntime.php‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class SymfonyRuntime extends GenericRuntime
9393
* dotenv_overload?: ?bool,
9494
* dotenv_extra_paths?: ?string[],
9595
* worker_loop_max?: int, // Use 0 or a negative integer to never restart the worker. Default: 500
96-
* worker_middlewares?: string
96+
* worker_middlewares?: string|string[],
9797
* } $options
9898
*/
9999
publicfunction__construct(array$options = [])
@@ -158,11 +158,13 @@ public function __construct(array $options = [])
158158

159159
$workerMiddlewares = ($options['worker_middlewares'] ??$_SERVER['FRANKENPHP_MIDDLEWARES'] ??$_ENV['FRANKENPHP_MIDDLEWARES'] ??'');
160160

161-
if (!\is_string($workerMiddlewares)) {
162-
thrownew \LogicException(\sprintf('The "worker_middlewares" runtime option must be an string, "%s" given.',get_debug_type($workerMiddlewares)));
161+
if (!\is_string($workerMiddlewares) && !\is_array($workerMiddlewares)) {
162+
thrownew \LogicException(\sprintf('The "worker_middlewares" runtime option must be anarray orstring, "%s" given.',get_debug_type($workerMiddlewares)));
163163
}
164164

165-
$workerMiddlewares =array_filter(explode("\n",$workerMiddlewares));
165+
$workerMiddlewares =array_filter(
166+
is_array($workerMiddlewares) ?$workerMiddlewares :explode("\n",$workerMiddlewares)
167+
);
166168

167169
foreach ($workerMiddlewaresas$workerMiddleware) {
168170
if (!is_a($workerMiddleware, MiddlewareInterface::class,true)) {
@@ -180,7 +182,7 @@ public function getRunner(?object $application): RunnerInterface
180182
if ($applicationinstanceof HttpKernelInterface) {
181183
if ($_SERVER['FRANKENPHP_WORKER'] ??false) {
182184
$middlewareFactory =newMiddlewareFactory();
183-
returnnewFrankenPhpWorkerRunner($application,$this->options['worker_loop_max'],$middlewareFactory->create(...$this->options['worker_middlewares']));
185+
returnnewFrankenPhpWorkerRunner($application,$this->options['worker_loop_max'],$middlewareFactory->create($this->options['worker_middlewares']));
184186
}
185187

186188
returnnewHttpKernelRunner($application, Request::createFromGlobals(),$this->options['debug'] ??false);

‎src/Symfony/Component/Runtime/Tests/SymfonyRuntimeTest.php‎

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,17 @@ public static function workerMiddlewaresOptionData(): iterable
9090
'expectedWorkerMiddlewares' => [],
9191
];
9292

93-
yield'valid middleware' => [
93+
yield'valid middleware - string' => [
9494
'value' => TestMiddleware::class,
9595
'expectedWorkerMiddlewares' => [TestMiddleware::class],
9696
];
9797

98+
99+
yield'valid middleware - array' => [
100+
'value' => [TestMiddleware::class],
101+
'expectedWorkerMiddlewares' => [TestMiddleware::class],
102+
];
103+
98104
yield'invalid middleware' => [
99105
'value' => InvalidMiddleware::class,
100106
'expectedMessage' =>\sprintf(
@@ -116,12 +122,12 @@ public static function workerMiddlewaresOptionData(): iterable
116122

117123
yield'invalid worker_middlewares option type - bool' => [
118124
'value' =>false,
119-
'expectedMessage' =>\sprintf('The "worker_middlewares" runtime option must be an string, "%s" given.','bool')
125+
'expectedMessage' =>\sprintf('The "worker_middlewares" runtime option must be anarray orstring, "%s" given.','bool')
120126
];
121127

122128
yield'invalid worker_middlewares option type - int' => [
123129
'value' =>42,
124-
'expectedMessage' =>\sprintf('The "worker_middlewares" runtime option must be an string, "%s" given.','int')
130+
'expectedMessage' =>\sprintf('The "worker_middlewares" runtime option must be anarray orstring, "%s" given.','int')
125131
];
126132
}
127133

@@ -144,4 +150,26 @@ public function testWorkerMiddlewaresOption(
144150
$this->assertEquals($expectedWorkerMiddlewares,$workerMiddlewares);
145151
}
146152
}
153+
154+
#[DataProvider('workerMiddlewaresOptionData')]
155+
publicfunctiontestWorkerMiddlewaresEnv(
156+
mixed$value,
157+
?array$expectedWorkerMiddlewares =null,
158+
?string$expectedMessage =null,
159+
) {
160+
if (null !==$expectedMessage) {
161+
$this->expectException(\LogicException::class);
162+
$this->expectExceptionMessage($expectedMessage);
163+
}
164+
165+
$_ENV['FRANKENPHP_MIDDLEWARES'] = (is_array($value) ?implode("\n",$value) :$value);
166+
167+
$runtime =newSymfonyRuntime(['error_handler' =>false]);
168+
169+
if (null !==$expectedWorkerMiddlewares) {
170+
$optionsReflection =new \ReflectionProperty($runtime,'options');
171+
$workerMiddlewares =$optionsReflection->getValue($runtime)['worker_middlewares'] ?? [];
172+
$this->assertEquals($expectedWorkerMiddlewares,$workerMiddlewares);
173+
}
174+
}
147175
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp