ouii
continuous-integration/drone/push Build encountered an error
Details
continuous-integration/drone/push Build encountered an error
Details
parent
ce4411500a
commit
d429a53b2d
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
// FrontController.php
|
||||
class FrontController {
|
||||
private $router;
|
||||
|
||||
public function __construct(Router $router) {
|
||||
$this->router = $router;
|
||||
}
|
||||
|
||||
public function dispatch() {
|
||||
$match = $this->router->match();
|
||||
|
||||
if ($match) {
|
||||
$controllerName = $match['controller'];
|
||||
$actionName = $match['action'];
|
||||
|
||||
// Utilisez l'injection de dépendances pour créer le contrôleur
|
||||
$controller = $this->createController($controllerName);
|
||||
|
||||
if ($controller) {
|
||||
// Appeler l'action correspondante
|
||||
$controller->$actionName();
|
||||
} else {
|
||||
// Gérer l'erreur, le contrôleur n'existe pas
|
||||
$this->handleError();
|
||||
}
|
||||
} else {
|
||||
// Gérer l'erreur, aucune route correspondante
|
||||
$this->handleError();
|
||||
}
|
||||
}
|
||||
|
||||
private function createController($controllerName) {
|
||||
// Utilisez un conteneur d'injection de dépendances pour créer le contrôleur
|
||||
return DependencyContainer::create($controllerName);
|
||||
}
|
||||
|
||||
private function handleError() {
|
||||
header("HTTP/1.0 404 Not Found");
|
||||
echo "Page not found";
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in new issue