<?php
namespace App\Core;

class View
{
    public function render(string $template, array $data = []): void
    {
        extract($data, EXTR_SKIP);
        $templateFile = __DIR__ . '/../Views/' . str_replace('.', '/', $template) . '.php';
        $layout = $data['_layout'] ?? 'main';
        $layoutFile = __DIR__ . '/../Views/layouts/' . $layout . '.php';

        if (!file_exists($templateFile)) {
            http_response_code(500);
            echo 'View not found: ' . htmlspecialchars($template);
            return;
        }

        if ($layout === 'none') {
            include $templateFile; // La vue est autonome (contient son HTML complet)
            return;
        }

        if (!file_exists($layoutFile)) {
            // Fallback sur main si le layout demandé n'existe pas
            $layoutFile = __DIR__ . '/../Views/layouts/main.php';
        }

        ob_start();
        include $templateFile;
        $content = ob_get_clean();

        include $layoutFile;
    }
}
