Bom dia
Não entendi muito bem esta função 'ob_start' e o que será retornado, neste método a seguir:
public function renderizarHtml(string $caminhoDoTemplate, array $dados): string
{
extract($dados);
ob_start();
require __DIR__ . "/../../view/" . $caminhoDoTemplate;
$html = ob_get_clean();
return $html;
}
Classe 'FomularioEdicao':
<?php
namespace Alura\Cursos\Controller;
use Alura\Cursos\Entity\Curso;
use Alura\Cursos\Infra\EntityManagerCreator;
use Doctrine\Persistence\ObjectRepository;
class FormularioEdicao extends ControllerComHTML implements InterfaceControladorRequisicao
{
/**
* @var ObjectRepository
*/
private $repositorio;
public function __construct()
{
$entityManager = (new EntityManagerCreator())->getEntityManager();
$this->repositorio = $entityManager->getRepository(Curso::class);
}
public function processarRequisicao(): void
{
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if (is_null($id) || $id === false) {
header('Location: /listar-cursos');
}
$curso = $this->repositorio->find($id);
$titulo = "Alterar curso";
echo $this->renderizarHtml("cursos/formulario-insercao.php", [
"curso" => $curso,
"titulo" => $titulo
]);
}
}
Foi usado o 'echo' na chamada do método, mas eu não entendi bem o que será exibido na página da web.
Obrigado pela ajuda.