Небольшой разбор с пояснением что за что отвечает в этом скрипте.
Так как корневой .htaccess не содержит строгих правил (что верно в построении расширяемых структур)
То, в отличии от FF параметры отображения страницы считываются из глобальной переменной $_SERVER, а конкретно из $_SERVER['REQUEST_URI'] - она если утрированно, то содержит заголовок/адрес который вы видите в поисковой строке браузера. Как скрипт понимает на какой вы странице и что показать? За это отвечает разбор $_SERVER['REQUEST_URI'], проводимый в /core/router.php
Магия которую он проводит заключается в дроблении ссылки ($_SERVER['REQUEST_URI']) по слешам. На выходе это обработка возвращает массив значений.
Немного о массивах
Массивы почти тоже самое что обычные переменные, но много удобнее для повторных использований.
например вместо $balance_add =10; $balance_del = 9;
можно использовать 2 массива ввида
$arrBalanceEvent = array(1=>'add',2=>'del'); и $arrBalanceMoney = array(1=>10,2=>9);
тогда вы сможете использвать это в циклах или иных местах просто обратившись по ключу (параметру в данном случае числу 1=add и 1=10 или 2=del и 2=9)
пример:
$arrBalanceMoney[1] // выберет из массива 10
$arrBalanceEvent[1] // выберет из массива add
$arrBalanceMoney[2] // выберет из массива 9
$arrBalanceEvent[2] // выберет из массива del
можно пойти дальше и сделать массив многомерным т.е массив в массиве:
$arrBalance = array(
1=>array(
money=>10,
event=>'add',
),
2=>array(
money=>9,
event=>'del',
)
);
$arrBalance[1]['money'] // выведет 10
$arrBalance[1]['event'] // выведет add
На примере страницы
https://vashsite.zone/news - страница новостей. Обработка вернет массив вида
Вернемся немного назад к /core/router.php, когда происходит считывание и разбиение по слешу, следом идет сопоставление полученного массива с правилами описанными в корневом /routes.php, для нашего правила скрипт будет искать строку
'/news' => 'news.php', // News (в корневом /routes.php), если он ее находит то 'магия' происходит уже в корневом и главном для 99% сайтов index.php.
$pg->segment[0] это и есть обращение к нашему массиву
полученному из адреса сайта в результате разбиения по слешам и подключению файла из соответствия описанного в корневом /routes.php ('/news' => 'news.php', // News)
# Гостевая
else {
require('inc/head.php');
require('pages/'.$routed_file); // ВОТ ОНО*
require('inc/foot.php');
}
*потому как в коде корневого index.php выше объявлено, что
$routed_file = $pg->classname (что в свою очередь в /core/router.php объявлено как
$this->classname = ПОИСК_СООТВЕТСТВИЯ)
Подытожим кратко и утрировано: Идет чтение адресной строки, поиск соответствия с путями которые указанны у вас в файле, при нахождении подключение и соответственно отображение этой страницы ('/news' => 'news.php', // News):
'/news' - равнозначно
https://vashsite.zone/news'news.php' - наименование файла в папке /pages/ вашего проекта
Это вводная часть потенциально расширяемой справки по движку, начал писать ее из-за поступающих вопросов об адресах и как убрать в адресной строке упоминание кабинета или иного.