diff --git a/src/App.php b/src/App.php index 98d70b07b2ee61ff68dfac60b10f9b277daac578..eba86c7a897c9e209dad8233aebfd7a8edb1ab6c 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 731f441d4854377221c5a6fbf6a2b483e991a05d..c81ba44f2494e8c9e05ad03fb801ada99467620c 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 5de245a9a40595ef70b43f18ac0a809ef9fa2c3a..cfc1966bec2869798af5146dcc2071a6133f2b10 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 0000000000000000000000000000000000000000..41a6a4fbd6171ccec909c4ca2be2314e807290cb --- /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 5afc1913ea99b5ddc36089f4633da23471f50e76..cb4b74cf46366c352f6f2091d07810294f77a482 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); }