File manager - Edit - /home/webapp69.cm.in.th/u69319090039/Shop39/public/core/App.php
Back
<?php class App { private Router $router; public function __construct() { $this->router = new Router(); $this->registerAutoloader(); $this->registerRoutes(); } private function registerAutoloader(): void { spl_autoload_register(function ($class) { $paths = [ SITE_ROOT . '/core/' . $class . '.php', SITE_ROOT . '/app/Controllers/' . $class . '.php', SITE_ROOT . '/app/Controllers/Seller/' . $class . '.php', SITE_ROOT . '/app/Controllers/Admin/' . $class . '.php', SITE_ROOT . '/app/Models/' . $class . '.php' ]; foreach ($paths as $file) { if (file_exists($file)) { require_once $file; return; } } }); } private function registerRoutes(): void { // Public Frontend Routes $this->router->get('/', [HomeController::class, 'index']); $this->router->get('/products', [ProductController::class, 'index']); $this->router->get('/product/{slug}', [ProductController::class, 'detail']); $this->router->get('/store/{slug}', [ProductController::class, 'storeFront']); $this->router->get('/categories', [ProductController::class, 'categories']); $this->router->get('/api/search-suggest', [ProductController::class, 'searchSuggest']); // Auth Routes $this->router->get('/login', [AuthController::class, 'showLogin']); $this->router->post('/login', [AuthController::class, 'login']); $this->router->get('/register', [AuthController::class, 'showRegister']); $this->router->post('/register', [AuthController::class, 'register']); $this->router->get('/logout', [AuthController::class, 'logout']); // Customer Profile & Seller Application $this->router->get('/profile', [ProfileController::class, 'index'], [[Auth::class, 'requireAuth']]); $this->router->post('/profile/update', [ProfileController::class, 'update'], [[Auth::class, 'requireAuth']]); $this->router->get('/seller/apply', [SellerRequestController::class, 'showApply'], [[Auth::class, 'requireAuth']]); $this->router->post('/seller/apply', [SellerRequestController::class, 'submitApply'], [[Auth::class, 'requireAuth']]); // Cart & Checkout $this->router->get('/cart', [CartController::class, 'index']); $this->router->post('/cart/add', [CartController::class, 'add']); $this->router->post('/cart/update', [CartController::class, 'update']); $this->router->post('/cart/remove', [CartController::class, 'remove']); $this->router->get('/checkout', [CheckoutController::class, 'index'], [[Auth::class, 'requireAuth']]); $this->router->post('/checkout/process', [CheckoutController::class, 'process'], [[Auth::class, 'requireAuth']]); // Orders & Wishlist $this->router->get('/orders', [OrderController::class, 'index'], [[Auth::class, 'requireAuth']]); $this->router->get('/orders/{id}', [OrderController::class, 'detail'], [[Auth::class, 'requireAuth']]); $this->router->post('/orders/review', [ReviewController::class, 'store'], [[Auth::class, 'requireAuth']]); $this->router->post('/wishlist/toggle', [WishlistController::class, 'toggle'], [[Auth::class, 'requireAuth']]); $this->router->get('/wishlist', [WishlistController::class, 'index'], [[Auth::class, 'requireAuth']]); // Seller Dashboard Routes $this->router->get('/seller/dashboard', [DashboardController::class, 'sellerDashboard'], [[Auth::class, 'requireSeller']]); $this->router->get('/seller/settings', [DashboardController::class, 'settings'], [[Auth::class, 'requireSeller']]); $this->router->post('/seller/settings/update', [DashboardController::class, 'updateSettings'], [[Auth::class, 'requireSeller']]); $this->router->get('/seller/products', [ProductManagementController::class, 'index'], [[Auth::class, 'requireSeller']]); $this->router->get('/seller/products/create', [ProductManagementController::class, 'create'], [[Auth::class, 'requireSeller']]); $this->router->post('/seller/products/store', [ProductManagementController::class, 'store'], [[Auth::class, 'requireSeller']]); $this->router->get('/seller/products/edit/{id}', [ProductManagementController::class, 'edit'], [[Auth::class, 'requireSeller']]); $this->router->post('/seller/products/update/{id}', [ProductManagementController::class, 'update'], [[Auth::class, 'requireSeller']]); $this->router->post('/seller/products/delete/{id}', [ProductManagementController::class, 'delete'], [[Auth::class, 'requireSeller']]); $this->router->post('/seller/products/toggle-status/{id}', [ProductManagementController::class, 'toggleStatus'], [[Auth::class, 'requireSeller']]); $this->router->get('/seller/orders', [SellerOrderController::class, 'index'], [[Auth::class, 'requireSeller']]); $this->router->get('/seller/orders/detail/{id}', [SellerOrderController::class, 'getOrderDetail'], [[Auth::class, 'requireSeller']]); $this->router->post('/seller/orders/update-status/{id}', [SellerOrderController::class, 'updateStatus'], [[Auth::class, 'requireSeller']]); $this->router->post('/seller/orders/update-shipping/{id}', [SellerOrderController::class, 'updateShipping'], [[Auth::class, 'requireSeller']]); $this->router->get('/seller/orders/print/{id}', [SellerOrderController::class, 'printSlip'], [[Auth::class, 'requireSeller']]); // Admin Routes $this->router->get('/admin/dashboard', [AdminDashboardController::class, 'index'], [[Auth::class, 'requireAdmin']]); $this->router->get('/admin/sellers', [SellerApprovalController::class, 'index'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/sellers/approve/{id}', [SellerApprovalController::class, 'approve'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/sellers/reject/{id}', [SellerApprovalController::class, 'reject'], [[Auth::class, 'requireAdmin']]); $this->router->get('/admin/categories', [CategoryController::class, 'index'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/categories/store', [CategoryController::class, 'store'], [[Auth::class, 'requireAdmin']]); $this->router->get('/admin/categories/edit/{id}', [CategoryController::class, 'edit'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/categories/update/{id}', [CategoryController::class, 'update'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/categories/delete/{id}', [CategoryController::class, 'delete'], [[Auth::class, 'requireAdmin']]); // Admin Store Management Routes $this->router->get('/admin/stores', [AdminStoreController::class, 'index'], [[Auth::class, 'requireAdmin']]); $this->router->get('/admin/stores/deleted', [AdminStoreController::class, 'deleted'], [[Auth::class, 'requireAdmin']]); $this->router->get('/admin/stores/detail/{id}', [AdminStoreController::class, 'detail'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/stores/suspend/{id}', [AdminStoreController::class, 'suspend'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/stores/unsuspend/{id}', [AdminStoreController::class, 'unsuspend'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/stores/ban/{id}', [AdminStoreController::class, 'ban'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/stores/unban/{id}', [AdminStoreController::class, 'unban'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/stores/delete/{id}', [AdminStoreController::class, 'delete'], [[Auth::class, 'requireAdmin']]); $this->router->post('/admin/stores/restore/{id}', [AdminStoreController::class, 'restore'], [[Auth::class, 'requireAdmin']]); } public function run(): void { $uri = $_SERVER['REQUEST_URI']; $method = $_SERVER['REQUEST_METHOD']; $this->router->dispatch($uri, $method); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings