From f460c7f9ebae002cd8732167fb985c8af359088c Mon Sep 17 00:00:00 2001 From: Kenneth Ezekiel <88850771+KenEzekiel@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:14:08 +0700 Subject: [PATCH] fix: static class problem --- src/App.php | 5 ++- src/Router.php | 7 ++++- src/base/BaseController.php | 11 ------- src/controllers/LoginController.php | 48 +++++++++++++++++++++++++++++ src/controllers/MainController.php | 3 +- 5 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 src/controllers/LoginController.php diff --git a/src/App.php b/src/App.php index 98d70b0..eba86c7 100644 --- a/src/App.php +++ b/src/App.php @@ -4,6 +4,7 @@ namespace app; use app\Router; use app\base\BaseController; +use app\controllers\LoginController; use app\controllers\MainController; use app\repositories\UserRepository; use app\services\UserService; @@ -21,7 +22,9 @@ class App function init_router() { - $this->router->addRoute('/', MainController::getInstance()); + + $this->router->addRoute('/', MainController::class); + $this->router->addRoute('/login', LoginController::class); // $this->router->addRoute('/', new BaseController(new UserService(new UserRepository()))); } } diff --git a/src/Router.php b/src/Router.php index 731f441..c81ba44 100644 --- a/src/Router.php +++ b/src/Router.php @@ -11,6 +11,7 @@ class Router function addRoute(string $route, $controller) { + var_dump($controller); $this->routes[$route] = $controller; } @@ -20,8 +21,12 @@ class Router $method = AppRequest::getMethod(); $params = AppRequest::getParams(); + var_dump($this->routes); if (isset($this->routes[$uri])) { - return $this->routes[$uri]->handle($method, $params); + // var_dump($this->routes[$uri]); + $controllerClass = $this->routes[$uri]; + $class = new $controllerClass(); + return $class->handle($method, $params); } } } diff --git a/src/base/BaseController.php b/src/base/BaseController.php index 5de245a..cfc1966 100644 --- a/src/base/BaseController.php +++ b/src/base/BaseController.php @@ -6,9 +6,6 @@ use app\exceptions\MethodNotAllowedException; abstract class BaseController { - // ngasih tau layoutnya pake apa - - protected static $instance; protected $service; protected function __construct($service) @@ -16,14 +13,6 @@ abstract class BaseController $this->service = $service; } - public static function getInstance() - { - if (!isset(self::$instance)) { - self::$instance = new static(null); - } - return self::$instance; - } - protected function get($urlParams) { throw new MethodNotAllowedException("Method not allowed"); diff --git a/src/controllers/LoginController.php b/src/controllers/LoginController.php new file mode 100644 index 0000000..41a6a4f --- /dev/null +++ b/src/controllers/LoginController.php @@ -0,0 +1,48 @@ +<?php + +namespace app\controllers; + +use app\base\BaseController; +use app\services\UserService; +use Exception; + +class LoginController extends BaseController +{ + public function __construct() + { + parent::__construct(null); + } + + protected function get($urlParams) + { + try { + parent::render($urlParams, "login", "layouts/base"); + } catch (Exception $e) { + echo $e; + } + } + protected function post($urlParams) + { + try { + parent::put($urlParams); + } catch (Exception $e) { + echo $e; + } + } + protected function put($urlParams) + { + try { + parent::put($urlParams); + } catch (Exception $e) { + echo $e; + } + } + protected function delete($urlParams) + { + try { + parent::delete($urlParams); + } catch (Exception $e) { + echo $e; + } + } +} diff --git a/src/controllers/MainController.php b/src/controllers/MainController.php index 5afc191..cb4b74c 100644 --- a/src/controllers/MainController.php +++ b/src/controllers/MainController.php @@ -3,13 +3,12 @@ namespace app\controllers; use app\base\BaseController; -use app\exceptions\MethodNotAllowedException; use Exception; class MainController extends BaseController { - protected function __construct() + public function __construct() { parent::__construct(null); } -- GitLab