Ajout des commentaires dans le code
This commit is contained in:
@@ -4,8 +4,22 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Core;
|
||||
|
||||
/**
|
||||
* Base des contrôleurs qui rendent une page HTML.
|
||||
*
|
||||
* Les contrôleurs d'API n'en héritent pas : ils écrivent directement leur
|
||||
* réponse via JsonResponse::send() et n'ont donc aucune vue à rendre.
|
||||
*/
|
||||
abstract class Controller
|
||||
{
|
||||
/**
|
||||
* Rend une vue de app/Views/ en lui exposant $data comme variables locales.
|
||||
*
|
||||
* @param string $view Chemin relatif sans extension, ex. « pages/planning ».
|
||||
* @param array<string, mixed> $data Variables mises à disposition de la vue.
|
||||
*
|
||||
* @throws \RuntimeException Si le fichier de vue n'existe pas.
|
||||
*/
|
||||
protected function render(string $view, array $data = []): void
|
||||
{
|
||||
$viewFile = dirname(__DIR__) . '/Views/' . $view . '.php';
|
||||
@@ -13,6 +27,8 @@ abstract class Controller
|
||||
throw new \RuntimeException('Vue introuvable : ' . $view);
|
||||
}
|
||||
|
||||
// EXTR_SKIP : une clé de $data ne peut pas écraser $view ni $viewFile,
|
||||
// ce qui rendrait le require imprévisible.
|
||||
extract($data, EXTR_SKIP);
|
||||
require $viewFile;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user