Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

erro ao chamar o método obg_get_clean

Bom dia. Estou tendo o seguinte erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Meu código:

<?php

namespace Alura\Cursos\Controller;

class ControllerComHtml
{
    public function renderizaHtml(string $caminhoTemplate, array $dados): string
    {
        extract($dados);
        ob_start();
        $html = obg_get_clean();

        return $html;
    }
}
2 respostas

Oi Karolina.

O professou disse o seguinte: "Com o PHP, conseguimos manipular o conteúdo de um arquivo que está sendo exibido, ao invés de retornado por uma função, o que também é chamado de "Output Buffer". Para isso, antes de fazermos o require no template, chamaremos a função ob_start() ("output buffer start", ou "inicialização do buffer de saída"). Isso fará com que o PHP comece a guardar tudo que é exibido.

Quando quisermos pegar os dados desse buffer, chamaremos a função ob_get_contents(), que nos retornará o conteúdo como string. Por fim, podemos chamar ob_clean() para limparmos esse buffer.

Também podemos resumir esse processo com o ob_get_clean(), que retorna os dados que estão no buffer e limpá-lo em seguida."

Me parece que faltou alimentar o buffer, ou seja: require __DIR__ . '/../../view/' . $caminhoTemplate;

Tente assim, por favor:

{
    extract($dados);
    ob_start();

    require __DIR__ . '/../../view/' . $caminhoTemplate;
    $html = ob_get_clean();
}
solução!

Boa noite. Verifiquei que estava escrevendo o nome do método errado.