aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Lange <code@nerdmind.de>2021-07-28 20:44:24 +0200
committerThomas Lange <code@nerdmind.de>2021-07-28 20:49:42 +0200
commitb605b73bbd0eaf314803b6c8c28bff000878d84c (patch)
treea3e543a26672dd855e3edfde6407ec911c8db360
parent3b01b602c6a10c26aebcfc6076c3f95b735091f2 (diff)
downloadblog-b605b73bbd0eaf314803b6c8c28bff000878d84c.tar.gz
blog-b605b73bbd0eaf314803b6c8c28bff000878d84c.tar.xz
blog-b605b73bbd0eaf314803b6c8c28bff000878d84c.zip
Use foreach loop for registering the item routes
Reduce some boilerplate code in the index.php by using a foreach loop to register the routes for the various item controllers.
-rw-r--r--index.php49
1 files changed, 15 insertions, 34 deletions
diff --git a/index.php b/index.php
index 8f6743b..a7d0ce6 100644
--- a/index.php
+++ b/index.php
@@ -5,44 +5,25 @@
require 'core/application.php';
#===============================================================================
-# Item base directory paths
+# ROUTE: Item controllers
#===============================================================================
-$CATEGORYPATH = Application::get('CATEGORY.DIRECTORY');
-$PAGEPATH = Application::get('PAGE.DIRECTORY');
-$POSTPATH = Application::get('POST.DIRECTORY');
-$USERPATH = Application::get('USER.DIRECTORY');
+foreach(['category', 'page', 'post', 'user'] as $item) {
+ $slug = Application::get(strtoupper($item).'.DIRECTORY');
-#===============================================================================
-# ROUTE: Item
-#===============================================================================
-Router::add("{$CATEGORYPATH}/([^/]+)/", function($param) { require 'core/include/category/main.php'; });
-Router::add("{$PAGEPATH}/([^/]+)/", function($param) { require 'core/include/page/main.php'; });
-Router::add("{$POSTPATH}/([^/]+)/", function($param) { require 'core/include/post/main.php'; });
-Router::add("{$USERPATH}/([^/]+)/", function($param) { require 'core/include/user/main.php'; });
+ # Item list controller
+ Router::add("{$slug}/", function() use($item) {
+ require "core/include/{$item}/list.php";
+ });
-#===============================================================================
-# ROUTE: Item overview
-#===============================================================================
-Router::add("{$CATEGORYPATH}/", function() { require 'core/include/category/list.php'; });
-Router::add("{$PAGEPATH}/", function() { require 'core/include/page/list.php'; });
-Router::add("{$POSTPATH}/", function() { require 'core/include/post/list.php'; });
-Router::add("{$USERPATH}/", function() { require 'core/include/user/list.php'; });
+ # Item show controller
+ Router::add("{$slug}/([^/]+)/", function($param) use($item) {
+ require "core/include/{$item}/main.php";
+ });
-#===============================================================================
-# REDIRECT: Item (trailing slash)
-#===============================================================================
-Router::addRedirect("{$CATEGORYPATH}/([^/]+)", Application::getCategoryURL('$1/'));
-Router::addRedirect("{$PAGEPATH}/([^/]+)", Application::getPageURL('$1/'));
-Router::addRedirect("{$POSTPATH}/([^/]+)", Application::getPostURL('$1/'));
-Router::addRedirect("{$USERPATH}/([^/]+)", Application::getUserURL('$1/'));
-
-#===============================================================================
-# REDIRECT: Item overview (trailing slash)
-#===============================================================================
-Router::addRedirect("{$CATEGORYPATH}", Application::getCategoryURL());
-Router::addRedirect("{$PAGEPATH}", Application::getPageURL());
-Router::addRedirect("{$POSTPATH}", Application::getPostURL());
-Router::addRedirect("{$USERPATH}", Application::getUserURL());
+ # Item controllers (ensure trailing slashes)
+ Router::addRedirect($slug, Application::getURL("{$slug}/"));
+ Router::addRedirect("{$slug}/([^/]+)", Application::getURL("{$slug}/$1/"));
+}
#===============================================================================
# ROUTE: Home