From fafe29f42d1bd8963b12ef355fc21a529082a4fb Mon Sep 17 00:00:00 2001 From: Avior Date: Wed, 20 Mar 2019 00:00:53 +0100 Subject: [PATCH] Modifications aand started working on adminBundle --- composer.json | 3 ++- src/AdminPanel/Classes/Controller.php | 19 ++++++++++++++++++ src/{ => AdminPanel}/Classes/Enum.php | 0 src/Classes/Controller.php | 10 ---------- .../AdminLib/Classes/AdminController.php | 10 ++++++++++ .../AdminLib/Controller/IndexController.php | 13 ++++++++++++ src/Modules/AdminLib/adminlib.json | 9 +++++++++ .../Index/Controller/IndexController.php | 3 ++- src/Modules/Index/index.json | 4 ++-- .../Controller/ExampleController.php | 2 +- src/Modules/ModuleName/modulename.json | 9 +++++++-- src/index.php | 20 +++++++++++++------ 12 files changed, 79 insertions(+), 23 deletions(-) create mode 100644 src/AdminPanel/Classes/Controller.php rename src/{ => AdminPanel}/Classes/Enum.php (100%) delete mode 100644 src/Classes/Controller.php create mode 100644 src/Modules/AdminLib/Classes/AdminController.php create mode 100644 src/Modules/AdminLib/Controller/IndexController.php create mode 100644 src/Modules/AdminLib/adminlib.json 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; }