From 053047e74359aa77ec7e1d10734e1367b578dbe5 Mon Sep 17 00:00:00 2001 From: fBrignoli Date: Wed, 15 Jun 2011 16:38:56 +0000 Subject: [PATCH] // dispatcher :) git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@7070 b9a71923-0436-4b27-9f14-aed3839534dd --- classes/Dispatcher.php | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 classes/Dispatcher.php diff --git a/classes/Dispatcher.php b/classes/Dispatcher.php new file mode 100644 index 000000000..13dee936d --- /dev/null +++ b/classes/Dispatcher.php @@ -0,0 +1,39 @@ +loadControllers(); + } + + public function dispatch() + { + $requested_controller = $this->getController(); + + $controller = $this->controllers[str_replace('-', '', strtolower($requested_controller))]; + ControllerFactory::getController($controller)->run(); + } + + protected function loadControllers() + { + $controller_files = scandir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'controllers'); + foreach($controller_files as $controller_filename) + { + if (substr($controller_filename, -14, 14) == 'Controller.php') + $this->controllers[strtolower(substr($controller_filename, 0, -14))] = basename($controller_filename, '.php'); + } + + // add default controller + $this->controllers['index'] = 'IndexController'; + $this->controllers['authentication'] = $this->controllers['auth']; + } + + public function getController() + { + return (isset($_GET['controller'])) ? $_GET['controller'] : 'index'; + } +} +