diff --git a/composer.json b/composer.json index bb0750e..a8ef97d 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,8 @@ ], "autoload": { "psr-4": { - "AdminPanel\\": "src/" + "AdminPanel\\": "src/AdminPanel", + "": "src/Modules" } } } diff --git a/src/AdminPanel/Classes/Controller.php b/src/AdminPanel/Classes/Controller.php new file mode 100644 index 0000000..70e799a --- /dev/null +++ b/src/AdminPanel/Classes/Controller.php @@ -0,0 +1,19 @@ +urlArguments = $args; + } + + protected function getUrlArguments() { + return $this->urlArguments; + } + +//TODO implements functions and variables to add functionnalities to controllers + +} diff --git a/src/Classes/Enum.php b/src/AdminPanel/Classes/Enum.php similarity index 100% rename from src/Classes/Enum.php rename to src/AdminPanel/Classes/Enum.php diff --git a/src/Classes/Controller.php b/src/Classes/Controller.php deleted file mode 100644 index e620480..0000000 --- a/src/Classes/Controller.php +++ /dev/null @@ -1,10 +0,0 @@ -getUrlArguments()); return "test working!"; } } diff --git a/src/Modules/Index/index.json b/src/Modules/Index/index.json index d19c5ef..656adcf 100644 --- a/src/Modules/Index/index.json +++ b/src/Modules/Index/index.json @@ -2,12 +2,12 @@ "routes": { "route_name": { "path": "/", - "controller": "\\AdminPanel\\Modules\\Index\\Controller\\IndexController", + "controller": "\\Index\\Controller\\IndexController", "function": "index" }, "route_name2": { "path": "/test/{slug}/", - "controller": "\\AdminPanel\\Modules\\Index\\Controller\\IndexController", + "controller": "\\Index\\Controller\\IndexController", "function": "test", "args": { "slug": { diff --git a/src/Modules/ModuleName/Controller/ExampleController.php b/src/Modules/ModuleName/Controller/ExampleController.php index 5de6f53..c20dc64 100644 --- a/src/Modules/ModuleName/Controller/ExampleController.php +++ b/src/Modules/ModuleName/Controller/ExampleController.php @@ -1,6 +1,6 @@ routes as $routeName => $routeArgs) { $args = isset($routeArgs->args) ? $routeArgs->args : new stdClass(); - - if(slugEqualToURI($routeArgs->path, $_SERVER["REQUEST_URI"], $args)) { + $composants = slugEqualToURI($routeArgs->path, $_SERVER["REQUEST_URI"], $args); + if($composants !== false) { $loader->loadClass($routeArgs->controller); $function = $routeArgs->function; - echo (new $routeArgs->controller)->$function(); + /** @var AdminPanel\Classes\Controller $controller */ + $controller = new $routeArgs->controller; + $controller->setUrlArguments($composants); + echo $controller->$function(); die; } } @@ -48,11 +52,12 @@ function startsWith($haystack, $needle) * @param string $slug * @param object $options options->regex &| options->setting * - * @return bool + * @return bool|array */ function slugEqualToURI($slug, $uri, $options) { $uri = explode("/", trim($uri, "\/")); $slug = explode("/", trim($slug, '\/')); + $return = array(); if(count($uri) != count($slug)) return false; @@ -61,7 +66,10 @@ function slugEqualToURI($slug, $uri, $options) { if(preg_match("/{.+}/", $value)) { $elemnt = preg_replace("/{|}/", "", $value); $elOptions = $options->$elemnt; - if($elOptions->regex != null && preg_match($elOptions->regex, $uri[$key])) continue; + if($elOptions->regex != null && preg_match($elOptions->regex, $uri[$key])) { + $return[$elemnt] = $uri[$key]; + continue; + } else return false; //TODO correspond with module settings } else { @@ -69,5 +77,5 @@ function slugEqualToURI($slug, $uri, $options) { else return false; } } - return true; + return $return; }