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