8000 Merge branch '4.4' · symfony/symfony@66547a4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 66547a4

Browse files
Merge branch '4.4'
* 4.4: Properly handle optional tag attributes for !tagged_iterator [Mime] rename Headers::getAll() to all() [Mailer] Fix phpdoc for variadic methods [DI] Move non removing compiler passes to after removing passes [Process] Deprecate Process::inheritEnvironmentVariables() [HttpClient] fix debug output added to stderr at shutdown
2 parents c910095 + d3a50d6 commit 66547a4

File tree

30 files changed

+82
-37
lines changed

30 files changed

+82
-37
lines changed

UPGRADE-4.4.md

Lines changed: 5 additions & 0 deletions
10000
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,11 @@ MonologBridge
118118
--------------
119119

120120
* The `RouteProcessor` has been marked final.
121+
122+
Process
123+
-------
124+
125+
* Deprecated the `Process::inheritEnvironmentVariables()` method: env variables are always inherited.
121126

122127
PropertyAccess
123128
--------------

UPGRADE-5.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ MonologBridge
336336
Process
337337
-------
338338

339+
* Removed the `Process::inheritEnvironmentVariables()` method: env variables are always inherited.
339340
* Removed the `Process::setCommandline()` and the `PhpProcess::setPhpBinary()` methods.
340341
* Commands must be defined as arrays when creating a `Process` instance.
341342

src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/DebugExtensionTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ private function compileContainer(ContainerBuilder $container)
8686
{
8787
$container->getCompilerPassConfig()->setOptimizationPasses([]);
8888
$container->getCompilerPassConfig()->setRemovingPasses([]);
89+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
8990
$container->compile();
9091
}
9192
}

src/Symfony/Bundle/FrameworkBundle/Command/ContainerDebugCommand.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ protected function getContainerBuilder(): ContainerBuilder
222222
$buildContainer = \Closure::bind(function () { return $this->buildContainer(); }, $kernel, \get_class($kernel));
223223
$container = $buildContainer();
224224
$container->getCompilerPassConfig()->setRemovingPasses([]);
225+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
225226
$container->compile();
226227
} else {
227228
(new XmlFileLoader($container = new ContainerBuilder(), new FileLocator()))->load($kernel->getContainer()->getParameter('debug.container.dump'));

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,6 +1422,7 @@ protected function createContainerFromFile($file, $data = [], $resetCompilerPass
14221422
if ($resetCompilerPasses) {
14231423
$container->getCompilerPassConfig()->setOptimizationPasses([]);
14241424
$container->getCompilerPassConfig()->setRemovingPasses([]);
1425+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
14251426
}
14261427
$container->getCompilerPassConfig()->setBeforeOptimizationPasses([new LoggerPass()]);
14271428
$container->getCompilerPassConfig()->setBeforeRemovingPasses([new AddConstraintValidatorsPass(), new TranslatorPass('translator.default', 'translation.reader')]);
@@ -1444,6 +1445,7 @@ protected function createContainerFromClosure($closure, $data = [])
14441445

14451446
$container->getCompilerPassConfig()->setOptimizationPasses([]);
14461447
$container->getCompilerPassConfig()->setRemovingPasses([]);
1448+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
14471449
$container->compile();
14481450

14491451
return $container;

src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,7 @@ protected function getContainer($file)
485485

486486
$container->getCompilerPassConfig()->setOptimizationPasses([]);
487487
$container->getCompilerPassConfig()->setRemovingPasses([]);
488+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
488489
$container->compile();
489490

490491
return $container;

src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,7 @@ protected function getRawContainer()
410410

411411
$container->getCompilerPassConfig()->setOptimizationPasses([]);
412412
$container->getCompilerPassConfig()->setRemovingPasses([]);
413+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
413414

414415
return $container;
415416
}

src/Symfony/Bundle/TwigBundle/Tests/DependencyInjection/TwigExtensionTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ public function testRuntimeLoader()
250250
$container->register('foo', '%foo%')->addTag('twig.runtime');
251251
$container->addCompilerPass(new RuntimeLoaderPass(), PassConfig::TYPE_BEFORE_REMOVING);
252252
$container->getCompilerPassConfig()->setRemovingPasses([]);
253+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
253254
$container->compile();
254255

255256
$loader = $container->getDefinition('twig.runtime_loader');
@@ -286,6 +287,7 @@ private function compileContainer(ContainerBuilder $container)
286287
{
287288
$container->getCompilerPassConfig()->setOptimizationPasses([]);
288289
$container->getCompilerPassConfig()->setRemovingPasses([]);
290+
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
289291
$container->compile();
290292
}
291293

src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ public function __construct()
8585
new InlineServiceDefinitionsPass(new AnalyzeServiceReferencesPass()),
8686
new AnalyzeServiceReferencesPass(),
8787
new DefinitionErrorExceptionPass(),
88+
]];
89+
90+
$this->afterRemovingPasses = [[
8891
new CheckExceptionOnInvalidReferenceBehaviorPass(),
8992
new ResolveHotPathPass(),
9093
]];

src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,7 @@ private function resolveServices($value, $file, $isParameter = false)
729729
throw new InvalidArgumentException(sprintf('"!%s" tag contains unsupported key "%s"; supported ones are "tag", "index_by" and "default_index_method".', $value->getTag(), implode('"", "', $diff)));
730730
}
731731

732-
$argument = new TaggedIteratorArgument($argument['tag'], $argument['index_by'], $argument['default_index_method'] ?? null, $forLocator);
732+
$argument = new TaggedIteratorArgument($argument['tag'], $argument['index_by'] ?? null, $argument['default_index_method'] ?? null, $forLocator);
733733

734734
if ($forLocator) {
735735
$argument = new ServiceLocatorArgument($argument);

src/Symfony/Component/DependencyInjection/Tests/Compiler/CheckCircularReferencesPassTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ protected function process(ContainerBuilder $container)
152152
new CheckCircularReferencesPass(),
153153
]);
154154
$passConfig->setRemovingPasses([]);
155+
$passConfig->setAfterRemovingPasses([]);
155156

156157
$compiler->compile($container);
157158
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
services:
2+
iterator_service:
3+
class: FooClass
4+
arguments: [!tagged_iterator {tag: test.tag}]

src/Symfony/Component/DependencyInjection/Tests/Loader/YamlFileLoaderTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,4 +829,18 @@ public function testOverriddenDefaultsBindings()
829829

830830
$this->assertSame('overridden', $container->get('bar')->quz);
831831
}
832+
833+
/**
834+
* When creating a tagged iterator using the array syntax, all optional parameters should be properly handled.
835+
*/
836+
public function testDefaultValueOfTagged()
837+
{
838+
$container = new ContainerBuilder();
839+
$loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
840+
$loader->load('tagged_iterator_optional.yml');
841+
842+
$iteratorArgument = $container->getDefinition('iterator_service')->getArgument(0);
843+
$this->assertInstanceOf(TaggedIteratorArgument::class, $iteratorArgument);
844+
$this->assertNull($iteratorArgument->getIndexAttribute());
845+
}
832846
}

src/Symfony/Component/Dotenv/Dotenv.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,12 @@ private function resolveCommands($value)
397397
}
398398

399399
$process = method_exists(Process::class, 'fromShellCommandline') ? Process::fromShellCommandline('echo '.$matches[0]) : new Process('echo '.$matches[0]);
400-
$process->inheritEnvironmentVariables(true);
400+
401+
if (!method_exists(Process::class, 'fromShellCommandline')) {
402+
// Symfony 3.4 does not inherit env vars by default:
403+
$process->inheritEnvironmentVariables();
404+
}
405+
401406
$process->setEnv($this->values);
402407
try {
403408
$process->mustRun();

src/Symfony/Component/Mailer/Bridge/Mailchimp/Http/Api/MandrillTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ private function getPayload(Email $email, SmtpEnvelope $envelope): array
8484
}
8585

8686
$headersToBypass = ['from', 'to', 'cc', 'bcc', 'subject', 'content-type'];
87-
foreach ($email->getHeaders()->getAll() as $name => $header) {
87+
foreach ($email->getHeaders()->all() as $name => $header) {
8888
if (\in_array($name, $headersToBypass, true)) {
8989
continue;
9090
}

src/Symfony/Component/Mailer/Bridge/Mailgun/Http/Api/MailgunTransport.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ protected function doSendApi(Email $email, SmtpEnvelope $envelope): ResponseInte
4545
{
4646
$body = new FormDataPart($this->getPayload($email, $envelope));
4747
$headers = [];
48-
foreach ($body->getPreparedHeaders()->getAll() as $header) {
48+
foreach ($body->getPreparedHeaders()->all() as $header) {
4949
$headers[] = $header->toString();
5050
}
5151

@@ -98,7 +98,7 @@ private function getPayload(Email $email, SmtpEnvelope $envelope): array
9898
}
9999

100100
$headersToBypass = ['from', 'to', 'cc', 'bcc', 'subject', 'content-type'];
101-
foreach ($headers->getAll() as $name => $header) {
101+
foreach ($headers->all() as $name => $header) {
102102
if (\in_array($name, $headersToBypass, true)) {
103103
continue;
104104
}

src/Symfony/Component/Mailer/Bridge/Mailgun/Http/MailgunTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ protected function doSendHttp(SentMessage $message): ResponseInterface
4747
'message' => new DataPart($message->toString(), 'message.mime'),
4848
]);
4949
$headers = [];
50-
foreach ($body->getPreparedHeaders()->getAll() as $header) {
50+
foreach ($body->getPreparedHeaders()->all() as $header) {
5151
$headers[] = $header->toString();
5252
}
5353
$endpoint = str_replace(['%domain%', '%region_dot%'], [urlencode($this->domain), 'us' !== ($this->region ?: 'us') ? $this->region.'.' : ''], self::ENDPOINT);

src/Symfony/Component/Mailer/Bridge/Postmark/Http/Api/PostmarkTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ private function getPayload(Email $email, SmtpEnvelope $envelope): array
6969
];
7070

7171
$headersToBypass = ['from', 'to', 'cc', 'bcc', 'subject', 'content-type', 'sender'];
72-
foreach ($email->getHeaders()->getAll() as $name => $header) {
72+
foreach ($email->getHeaders()->all() as $name => $header) {
7373
if (\in_array($name, $headersToBypass, true)) {
7474
continue;
7575
}

src/Symfony/Component/Mailer/Bridge/Sendgrid/Http/Api/SendgridTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ private function getPayload(Email $email, SmtpEnvelope $envelope): array
8383
// these headers can't be overwritten according to Sendgrid docs
8484
// see https://developers.pepipost.com/migration-api/new-subpage/email-send
8585
$headersToBypass = ['x-sg-id', 'x-sg-eid', 'received', 'dkim-signature', 'content-transfer-encoding', 'from', 'to', 'cc', 'bcc', 'subject', 'content-type', 'reply-to'];
86-
foreach ($email->getHeaders()->getAll() as $name => $header) {
86+
foreach ($email->getHeaders()->all() as $name => $header) {
8787
if (\in_array($name, $headersToBypass, true)) {
8888
continue;
8989
}

src/Symfony/Component/Mailer/DelayedSmtpEnvelope.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ private static function getRecipientsFromHeaders(Headers $headers): array
7171
{
7272
$recipients = [];
7373
foreach (['to', 'cc', 'bcc'] as $name) {
74-
foreach ($headers->getAll($name) as $header) {
74+
foreach ($headers->all($name) as $header) {
7575
foreach ($header->getAddresses() as $address) {
7676
$recipients[] = new Address($address->getAddress());
7777
}

src/Symfony/Component/Mailer/EventListener/MessageListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private function setHeaders(Message $message): void
5151
}
5252

5353
$headers = $message->getHeaders();
54-
foreach ($this->headers->getAll() as $name => $header) {
54+
foreach ($this->headers->all() as $name => $header) {
5555
if (!$headers->has($name)) {
5656
$headers->add($header);
5757
} else {

src/Symfony/Component/Mime/Email.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public function getSender(): ?Address
101101
}
102102

103103
/**
104-
* @param Address|NamedAddress|string $addresses
104+
* @param Address|NamedAddress|string ...$addresses
105105
*
106106
* @return $this
107107
*/
@@ -111,7 +111,7 @@ public function addFrom(...$addresses)
111111
}
112112

113113
/**
114-
* @param Address|NamedAddress|string $addresses
114+
* @param Address|NamedAddress|string ...$addresses
115115
*
116116
* @return $this
117117
*/
@@ -129,7 +129,7 @@ public function getFrom(): array
129129
}
130130

131131
/**
132-
* @param Address|string $addresses
132+
* @param Address|string ...$addresses
133133
*
134134
* @return $this
135135
*/
@@ -139,7 +139,7 @@ public function addReplyTo(...$addresses)
139139
}
140140

141141
/**
142-
* @param Address|string $addresses
142+
* @param Address|string ...$addresses
143143
*
144144
* @return $this
145145
*/
@@ -157,7 +157,7 @@ public function getReplyTo(): array
157157
}
158158

159159
/**
160-
* @param Address|NamedAddress|string $addresses
160+
* @param Address|NamedAddress|string ...$addresses
161161
*
162162
* @return $this
163163
*/
@@ -167,7 +167,7 @@ public function addTo(...$addresses)
167167
}
168168

169169
/**
170-
* @param Address|NamedAddress|string $addresses
170+
* @param Address|NamedAddress|string ...$addresses
171171
*
172172
* @return $this
173173
*/
@@ -185,7 +185,7 @@ public function getTo(): array
185185
}
186186

187187
/**
188-
* @param Address|NamedAddress|string $addresses
188+
* @param Address|NamedAddress|string ...$addresses
189189
*
190190
* @return $this
191191
*/
@@ -195,7 +195,7 @@ public function addCc(...$addresses)
195195
}
196196

197197
/**
198-
* @param Address|string $addresses
198+
* @param Address|string ...$addresses
199199
*
200200
* @return $this
201201
*/
@@ -213,7 +213,7 @@ public function getCc(): array
213213
}
214214

215215
/**
216-
* @param Address|NamedAddress|string $addresses
216+
* @param Address|NamedAddress|string ...$addresses
217217
*
218218
* @return $this
219219
*/
@@ -223,7 +223,7 @@ public function addBcc(...$addresses)
223223
}
224224

225225
/**
226-
* @param Address|string $addresses
226+
* @param Address|string ...$addresses
227227
*
228228
* @return $this
229229
*/

src/Symfony/Component/Mime/Header/Headers.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public function __clone()
4949
public function setMaxLineLength(int $lineLength)
5050
{
5151
$this->lineLength = $lineLength;
52-
foreach ($this->getAll() as $header) {
52+
foreach ($this->all() as $header) {
5353
$header->setMaxLineLength($lineLength);
5454
}
5555
}
@@ -175,7 +175,7 @@ public function get(string $name): ?HeaderInterface
175175
return array_shift($values);
176176
}
177177

178-
public function getAll(string $name = null): iterable
178+
public function all(string $name = null): iterable
179179
{
180180
if (null === $name) {
181181
foreach ($this->headers as $name => $collection) {
@@ -218,7 +218,7 @@ public function toString(): string
218218
public function toArray(): array
219219
{
220220
$arr = [];
221-
foreach ($this->getAll() as $header) {
221+
foreach ($this->all() as $header) {
222222
if ('' !== $header->getBodyAsString()) {
223223
$arr[] = $header->toString();
224224
}

src/Symfony/Component/Mime/Tests/Header/HeadersTest.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public function testGetReturnsNullIfHeaderNotSet()
141141
$this->assertNull($headers->get('Message-ID'));
142142
}
143143

144-
public function testGetAllReturnsAllHeadersMatchingName()
144+
public function testAllReturnsAllHeadersMatchingName()
145145
{
146146
$header0 = new UnstructuredHeader('X-Test', 'some@id');
147147
$header1 = new UnstructuredHeader('X-Test', 'other@id');
@@ -150,10 +150,10 @@ public function testGetAllReturnsAllHeadersMatchingName()
150150
$headers->addTextHeader('X-Test', 'some@id');
151151
$headers->addTextHeader('X-Test', 'other@id');
152152
$headers->addTextHeader('X-Test', 'more@id');
153-
$this->assertEquals([$header0, $header1, $header2], iterator_to_array($headers->getAll('X-Test')));
153+
$this->assertEquals([$header0, $header1, $header2], iterator_to_array($headers->all('X-Test')));
154154
}
155155

156-
public function testGetAllReturnsAllHeadersIfNoArguments()
156+
public function testAllReturnsAllHeadersIfNoArguments()
157157
{
158158
$header0 = new IdentificationHeader('Message-ID', 'some@id');
159159
$header1 = new UnstructuredHeader('Subject', 'thing');
@@ -162,13 +162,13 @@ public function testGetAllReturnsAllHeadersIfNoArguments()
162162
$headers->addIdHeader('Message-ID', 'some@id');
163163
$headers->addTextHeader('Subject', 'thing');
164164
$headers->addMailboxListHeader('To', [new Address('person@example.org')]);
165-
$this->assertEquals(['message-id' => $header0, 'subject' => $header1, 'to' => $header2], iterator_to_array($headers->getAll()));
165+
$this->assertEquals(['message-id' => $header0, 'subject' => $header1, 'to' => $header2], iterator_to_array($headers->all()));
166166
}
167167

168-
public function testGetAllReturnsEmptyArrayIfNoneSet()
168+
public function testAllReturnsEmptyArrayIfNoneSet()
169169
{
170170
$headers = new Headers();
171-
$this->assertEquals([], iterator_to_array($headers->getAll('Received')));
171+
$this->assertEquals([], iterator_to_array($headers->all('Received')));
172172
}
173173

174174
public function testRemoveRemovesAllHeadersWithName()
@@ -199,12 +199,12 @@ public function testGetIsNotCaseSensitive()
199199
$this->assertEquals($header, $headers->get('message-id'));
200200
}
201201

202-
public function testGetAllIsNotCaseSensitive()
202+
public function testAllIsNotCaseSensitive()
203203
{
204204
$header = new IdentificationHeader('Message-ID', 'some@id');
205205
$headers = new Headers();
206206
$headers->addIdHeader('Message-ID', 'some@id');
207-
$this->assertEquals([$header], iterator_to_array($headers->getAll('message-id')));
207+
$this->assertEquals([$header], iterator_to_array($headers->all('message-id')));
208208
}
209209

210210
public function testRemoveIsNotCaseSensitive()

0 commit comments

Comments
 (0)
0