O filtro personalizado MeuFiltro.php não estava funcionando. Daí, eu a entendi o erro graças a esta postagem no fórum: https://cursos.alura.com.br/forum/topico-problema-no-stream_filter_append-212423
Como eu estou usando Windows, a quebra de linha no arquivo não é o mesmo que o caractere \n. Mas como na vídeo aula o código estava assim, pensei que o \n e a constante PHP_EOL fossem a mesma coisa.
Pode ser interessante destacar isso no material ou no vídeo.
Código de MeuFiltro.php proposto na aula:
$linhas = explode('\n', $bucket->data);
foreach ($linhas as $linha) {
if (stripos($linha, 'parte') !== false)
{
$saida .= "$linha\n";
}
}
Código de MeuFiltro.php substituindo o '\n' por PHP_EOL:
$linhas = explode(PHP_EOL, $bucket->data);
foreach ($linhas as $linha) {
if (stripos($linha, 'parte') !== false)
{
$saida .= "$linha" . PHP_EOL;
}
}