minor #30480 [Mime] Use "yield from" when possible (fabpot)

This PR was merged into the 4.3-dev branch.

Discussion
----------

[Mime] Use "yield from" when possible

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

df1b627417 [Mime] used yield-from when possible
This commit is contained in:
Fabien Potencier 2019-03-07 23:09:42 +01:00
commit ba727ec509
6 changed files with 7 additions and 15 deletions

View File

@ -122,9 +122,7 @@ class Message extends RawMessage
}
yield $this->getPreparedHeaders()->toString();
foreach ($body->toIterable() as $chunk) {
yield $chunk;
}
yield from $body->toIterable();
}
private function generateMessageId(string $email): string

View File

@ -81,9 +81,7 @@ abstract class AbstractMultipartPart extends AbstractPart
foreach ($parts as $part) {
yield '--'.$this->getBoundary()."\r\n";
foreach ($part->toIterable() as $chunk) {
yield $chunk;
}
yield from $part->toIterable();
yield "\r\n";
}
yield '--'.$this->getBoundary()."--\r\n";

View File

@ -49,9 +49,7 @@ abstract class AbstractPart
{
yield $this->getPreparedHeaders()->toString();
yield "\r\n";
foreach ($this->bodyToIterable() as $chunk) {
yield $chunk;
}
yield from $this->bodyToIterable();
}
abstract public function bodyToString(): string;

View File

@ -118,9 +118,7 @@ class TextPart extends AbstractPart
if (stream_get_meta_data($this->body)['seekable'] ?? false) {
rewind($this->body);
}
foreach ($this->getEncoder()->encodeByteStream($this->body) as $chunk) {
yield $chunk;
}
yield from $this->getEncoder()->encodeByteStream($this->body);
} else {
yield $this->getEncoder()->encodeString($this->body);
}

View File

@ -34,7 +34,7 @@ class RawMessage
return $this->message;
}
return $this->message = implode('', iterator_to_array($this->message));
return $this->message = implode('', iterator_to_array($this->message, false));
}
public function toIterable(): iterable

View File

@ -131,7 +131,7 @@ Content-Transfer-Encoding: quoted-printable
EOF;
$this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", $message->toString()));
$this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable()))));
$this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable(), false))));
$message = new Message(null, new TextPart('content'));
$message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']);
@ -146,6 +146,6 @@ Content-Transfer-Encoding: quoted-printable
content
EOF;
$this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", $message->toString()));
$this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable()))));
$this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable(), false))));
}
}