From 4c1efb97f69bdcbd0cab3b3413ca888b63cbddf1 Mon Sep 17 00:00:00 2001 From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com> Date: Thu, 19 Oct 2023 18:19:20 +0700 Subject: [PATCH] refactor: make controller render DRY --- src/controller/Controller.php | 11 +++++++++++ src/controller/cart/CartController.php | 11 +---------- src/controller/category/CategoryController.php | 9 +-------- src/controller/home/HomeController.php | 9 +-------- src/controller/home/NotFoundController.php | 9 +-------- src/controller/login/LoginController.php | 9 +-------- src/controller/login/LogoutController.php | 9 +-------- src/controller/login/RegisterController.php | 9 +-------- src/controller/product/AddProductController.php | 10 +--------- src/controller/product/EditProductController.php | 9 +-------- src/controller/product/ProductController.php | 9 +-------- src/controller/profile/EditProfileController.php | 9 +-------- src/controller/profile/ProfileController.php | 9 +-------- 13 files changed, 23 insertions(+), 99 deletions(-) diff --git a/src/controller/Controller.php b/src/controller/Controller.php index a90d2d9..199b876 100644 --- a/src/controller/Controller.php +++ b/src/controller/Controller.php @@ -20,4 +20,15 @@ class Controller{ require_once __DIR__. "/../models/$model.php"; return new $model(); } + + protected function render($data = []) { + require __DIR__ . '/../views/Routes.php'; + $className = static::class; + $fileName = str_replace('Controller', '', $className); + $folderName = $routes[$fileName]; + + $view = $this->view($folderName, $fileName, $data); + + $view->render(); + } } \ No newline at end of file diff --git a/src/controller/cart/CartController.php b/src/controller/cart/CartController.php index ab3c256..7f395f3 100644 --- a/src/controller/cart/CartController.php +++ b/src/controller/cart/CartController.php @@ -40,15 +40,6 @@ class CartController extends Controller { "productFileModel" => $productFileModel ]; - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } - - } diff --git a/src/controller/category/CategoryController.php b/src/controller/category/CategoryController.php index 7ce39dd..2fe9dbc 100644 --- a/src/controller/category/CategoryController.php +++ b/src/controller/category/CategoryController.php @@ -21,13 +21,6 @@ class CategoryController extends Controller{ "pageLimit" => $this->pageLimit ]; - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } } \ No newline at end of file diff --git a/src/controller/home/HomeController.php b/src/controller/home/HomeController.php index cf7df83..f68fb0e 100644 --- a/src/controller/home/HomeController.php +++ b/src/controller/home/HomeController.php @@ -59,13 +59,6 @@ class HomeController extends Controller{ "max-price" => $maxPrice ]; - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } } \ No newline at end of file diff --git a/src/controller/home/NotFoundController.php b/src/controller/home/NotFoundController.php index eeb4b0a..bf4a3a2 100644 --- a/src/controller/home/NotFoundController.php +++ b/src/controller/home/NotFoundController.php @@ -2,13 +2,6 @@ class NotFoundController extends Controller{ public function index() { - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName); - - $view->render(); + $this->render(); } } \ No newline at end of file diff --git a/src/controller/login/LoginController.php b/src/controller/login/LoginController.php index a97677a..3e1a259 100644 --- a/src/controller/login/LoginController.php +++ b/src/controller/login/LoginController.php @@ -7,14 +7,7 @@ class LoginController extends Controller{ exit(); } - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName); - - $view->render(); + $this->render(); } public function post() { diff --git a/src/controller/login/LogoutController.php b/src/controller/login/LogoutController.php index cc4b9b4..f758634 100644 --- a/src/controller/login/LogoutController.php +++ b/src/controller/login/LogoutController.php @@ -6,13 +6,6 @@ class LogoutController extends Controller{ throw new Exception("You are not allowed to view this page", 405); } - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName); - - $view->render(); + $this->render(); } } \ No newline at end of file diff --git a/src/controller/login/RegisterController.php b/src/controller/login/RegisterController.php index 864670e..1337379 100644 --- a/src/controller/login/RegisterController.php +++ b/src/controller/login/RegisterController.php @@ -7,14 +7,7 @@ class RegisterController extends Controller{ exit(); } - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName); - - $view->render(); + $this->render(); } public function post() { diff --git a/src/controller/product/AddProductController.php b/src/controller/product/AddProductController.php index baed08c..1051a5f 100644 --- a/src/controller/product/AddProductController.php +++ b/src/controller/product/AddProductController.php @@ -13,15 +13,7 @@ class AddProductController extends Controller{ $data = $categoryModel->getCategory()->fetch_all(); - // print_r($data); - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } public function post(){ diff --git a/src/controller/product/EditProductController.php b/src/controller/product/EditProductController.php index ef81937..d032d4f 100644 --- a/src/controller/product/EditProductController.php +++ b/src/controller/product/EditProductController.php @@ -28,14 +28,7 @@ class EditProductController extends Controller{ 'productFile' => $product_file ]; - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } public function post($id){ diff --git a/src/controller/product/ProductController.php b/src/controller/product/ProductController.php index 748453e..3454b17 100644 --- a/src/controller/product/ProductController.php +++ b/src/controller/product/ProductController.php @@ -24,13 +24,6 @@ class ProductController extends Controller{ 'productFile' => $productFile ]; - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } } \ No newline at end of file diff --git a/src/controller/profile/EditProfileController.php b/src/controller/profile/EditProfileController.php index e27fec2..3fa9d91 100644 --- a/src/controller/profile/EditProfileController.php +++ b/src/controller/profile/EditProfileController.php @@ -14,14 +14,7 @@ class EditProfileController extends Controller { $data = $userModel->getCurrentUser(); } - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } public function post() { diff --git a/src/controller/profile/ProfileController.php b/src/controller/profile/ProfileController.php index e052a4b..e5f3e9f 100644 --- a/src/controller/profile/ProfileController.php +++ b/src/controller/profile/ProfileController.php @@ -17,13 +17,6 @@ class ProfileController extends Controller $data = $userModel->getCurrentUser(); } - $dir = __DIR__; - $dir = explode("/", $dir); - $folderName = end($dir); - $className = get_class(); - $fileName = str_replace('Controller', '', $className); - $view = $this->view($folderName, $fileName, $data); - - $view->render(); + $this->render($data); } } -- GitLab