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
    }

}