Как создать класс php для действий навигации

Может ли кто-нибудь сказать мне, как создать php-класс для действия навигации, я бы хотел написать url, как это в браузере

предположим, что если мне нужна домашняя страница, тогда

http://myserver.mydomain.com/index/home, тогда действие будет домашней функцией index.php.

Я знаю, что могу достичь этого, используя $_POST и $_GET , но я хочу попробовать что-то вроде того, как работает кодигнитер, пока я так пробовал

 <?php class Index { function __construct() { parent::__construct(); } function home(){ include('test/header.php'); include('test/home.php'); include('test/footer.php'); } function about(){ include('test/header.php'); include('test/about.php'); include('test/footer.php'); } } ?> в <?php class Index { function __construct() { parent::__construct(); } function home(){ include('test/header.php'); include('test/home.php'); include('test/footer.php'); } function about(){ include('test/header.php'); include('test/about.php'); include('test/footer.php'); } } ?> в <?php class Index { function __construct() { parent::__construct(); } function home(){ include('test/header.php'); include('test/home.php'); include('test/footer.php'); } function about(){ include('test/header.php'); include('test/about.php'); include('test/footer.php'); } } ?> в <?php class Index { function __construct() { parent::__construct(); } function home(){ include('test/header.php'); include('test/home.php'); include('test/footer.php'); } function about(){ include('test/header.php'); include('test/about.php'); include('test/footer.php'); } } ?> в <?php class Index { function __construct() { parent::__construct(); } function home(){ include('test/header.php'); include('test/home.php'); include('test/footer.php'); } function about(){ include('test/header.php'); include('test/about.php'); include('test/footer.php'); } } ?> в <?php class Index { function __construct() { parent::__construct(); } function home(){ include('test/header.php'); include('test/home.php'); include('test/footer.php'); } function about(){ include('test/header.php'); include('test/about.php'); include('test/footer.php'); } } ?> в <?php class Index { function __construct() { parent::__construct(); } function home(){ include('test/header.php'); include('test/home.php'); include('test/footer.php'); } function about(){ include('test/header.php'); include('test/about.php'); include('test/footer.php'); } } ?> 

Предположим, что мы имеем следующее правило перезаписи;

 RewriteEngine On RewriteRule ^([^/]*)$ /index.php?module=$1 [L,QSA] 

Это будет переписывать запрос типа; http://example.php/index.php?module=about to http://example.php/about

Теперь давайте посмотрим, как делается Маршрутизатор;

  • Это очень простой
  • Могут быть улучшены
 <?php class Router { private $strModule; //Holds the module to load (the page) public function __construct(){} public function setModule($strModuleName) { $this->strModule = $strModuleName; } public function loadModule() { if( file_exists('modules/'. $this->strModule .'.php') ) { include 'modules/'. $this->strModule .'.php'; } else { 'modules/404.php'; } } } 

Теперь давайте использовать маршрутизатор в index.php

 $objRouter = new Router(); $objRouter->setModule($_GET['module']); $objRouter->loadModule(); 

И наше дерево будет похоже;

  - index.php - modules/ - about.php - 404.php 

Конечно, это просто быстрая работа, и ее можно улучшить.

Надеюсь, это поможет.

Примечание . Симпатичные URL-адреса (.htaccess переписывают правила) предназначены только для глазных конфет. Вы можете добиться этого, не используя правила перезаписи, даже с тем же кодом, который указан выше