Skip to content

Commit f8fd01e

Browse files
committed
Merge branch '6.4' into 7.0
* 6.4: not registered definitions must not be modified fix low deps [String] Fix Inflector for 'hardware' [Mime] Use streams instead of loading raw message generator into memory Bump Symfony version to 6.4.9 Update VERSION for 6.4.8 Update CHANGELOG for 6.4.8 Bump Symfony version to 5.4.41 Update VERSION for 5.4.40 Update CONTRIBUTORS for 5.4.40 Update CHANGELOG for 5.4.40
2 parents 3426d1e + 5a659ba commit f8fd01e

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

RawMessage.php

+24-3
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,32 @@
1818
*/
1919
class RawMessage
2020
{
21-
private iterable|string $message;
21+
/** @var iterable|string|resource */
22+
private $message;
2223
private bool $isGeneratorClosed;
2324

2425
public function __construct(iterable|string $message)
2526
{
2627
$this->message = $message;
2728
}
2829

30+
public function __destruct()
31+
{
32+
if (\is_resource($this->message)) {
33+
fclose($this->message);
34+
}
35+
}
36+
2937
public function toString(): string
3038
{
3139
if (\is_string($this->message)) {
3240
return $this->message;
3341
}
3442

43+
if (\is_resource($this->message)) {
44+
return stream_get_contents($this->message, -1, 0);
45+
}
46+
3547
$message = '';
3648
foreach ($this->message as $chunk) {
3749
$message .= $chunk;
@@ -52,10 +64,19 @@ public function toIterable(): iterable
5264
return;
5365
}
5466

67+
if (\is_resource($this->message)) {
68+
rewind($this->message);
69+
while ($line = fgets($this->message)) {
70+
yield $line;
71+
}
72+
73+
return;
74+
}
75+
5576
if ($this->message instanceof \Generator) {
56-
$message = '';
77+
$message = fopen('php://temp', 'w+');
5778
foreach ($this->message as $chunk) {
58-
$message .= $chunk;
79+
fwrite($message, $chunk);
5980
yield $chunk;
6081
}
6182
$this->isGeneratorClosed = !$this->message->valid();

composer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
"symfony/process": "^6.4|^7.0",
2929
"symfony/property-access": "^6.4|^7.0",
3030
"symfony/property-info": "^6.4|^7.0",
31-
"symfony/serializer": "^6.4|^7.0"
31+
"symfony/serializer": "^6.4.3|^7.0.3"
3232
},
3333
"conflict": {
3434
"egulias/email-validator": "~3.0.0",
3535
"phpdocumentor/reflection-docblock": "<3.2.2",
3636
"phpdocumentor/type-resolver": "<1.4.0",
3737
"symfony/mailer": "<6.4",
38-
"symfony/serializer": "<6.4"
38+
"symfony/serializer": "<6.4.3|>7.0,<7.0.3"
3939
},
4040
"autoload": {
4141
"psr-4": { "Symfony\\Component\\Mime\\": "" },

0 commit comments

Comments
 (0)