lessons/php/render.title
Render
C'est ce qui va permettre de "rendre", c'est à dire "afficher", la vue de la page à laquelle on accède sans quoi on accèderai à une page blanche
class Renderer
{
public function __construct
(
private string $viewPath, // correspond au chemin de la vue
private ?array $params // correspond aux données qu'on souhaite transmettre sur la page, c'est une variable
// optionnelle
)
{}
public function view(): string
{
ob_start(); //on ouvre le tampon du navigateur
extract($this->params); //on stocke les données additionnelles récupérées
require BASE_VIEW_PATH . $this->viewPath . '.php'; //on requiert le chemin de la page
return ob_get_clean(); //on récupère le contenu puis on vide le tampon
}
public static function make(string $viewPath, ?array $params): static
{
return new static($viewPath, $params);
}
public function __toString()
{
return $this->view(); //on transforme les données de la vue en chaîne de caractères
}
}