Tp 6 php namespaces controllers blogpoo
Thème :
Junior
1 vues ·5/12 leçons

04. Le Service Renderer (App\Renderer)

La fonction procédurale render() a été transformée en une classe statique pour centraliser la gestion de l’affichage.

Fonctionnement

La classe utilise la mise en tampon de sortie (ob_start) pour capturer le contenu de la vue avant de l’injecter dans un layout.

namespace App;

class Renderer {
    public static function render(string $path, array $variables = [], string $layout = 'blog-layout'): void {
        extract($variables);
        ob_start();
        require_once "resources/views/" . $path . "_html.php";
        $pageContent = ob_get_clean();
        require_once "resources/views/layouts/{$layout}/{$layout}_html.php";
    }
}

Utilisation dans un Contrôleur

use App\Renderer;

Renderer::render('blog/index', ['articles' => $articles]);

Cela permet de changer globalement la manière dont les vues sont chargées sans modifier chaque fichier de l’application.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur 04. Le Service Renderer (`App\Renderer`). Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.