Как правильно осуществить построение маршрутизации PHP?
Посмотрите на тот вариант, который предоставляется в Symfony/Routing (не столько реализация, сколько вообще как определяются рауты) и попробуйте реализовать по схожему принципу.
По сути, все сводится к формированию регулярного выражения из правила. Например правило видаroute="/blog/{id}" requirements={id: '\d+'}
где route - это шаблон нашего урла, а requirements - валидация параметров (опционально)
сгенерит регулярку вида:^/blog/(?P<id>\d+)$
где (?P<id>\d+) именованный подшаблон (можно сделать и проще, но так удобнее). С версии 5,2+ могут быть такие варианты:(?P<id>\d+)
(?<id>\d+)
(?'id'\d+)
Далее ваш маршрутизатор при проверке соответствий с маршрутами просто проходит по массиву правил (по сути массиву регулярок) и смотрит соответствует ли оно какому-либо правилу.
На самом деле в целях обучения, это самый классный способ. Ибо там есть где подумать и над формированием новой строки, и с регулярками разобраться можно неслабо... Последнее поможет вам не только в PHP, но и в JS (немного), и просто в жизни (кучи IDE и редакторов имеют поиск и замену по регуляркам, что иногда очень полезно).
Схожая реализация в Yii, и в большинстве других фреймворков.
Возможно есть где-то что-то почитать для таких как я, кому нужно понять работу этих элементарных вещей?
Посмотри как реализован роутинг в популярных фреймворках (Symphony, Zend, Yii & etc).