Что ж, если вы учитесь, как вы сказали, вы не должны использовать свою среду для производственного кода, потому что одна вещь ломает приложение дома, а другая теряет деньги с недовольными клиентами:)
Вернуться к проблеме. Я создал свой собственный фреймворк для приложений PHP, и у меня есть несколько фреймворков. Идея заключается в том, что каждый маршрутизатор обрабатывает определенный шаблон маршрута, например:
http://someapplication.org/services/awebservice/
Этот код будет вызывать ServiceRouter, который обрабатывает веб-службы маршрутизации. Перед вызовом любого Маршрутизатора я проверяю, существует ли Маршрутизатор, и если он существует, то я бы вызвал метод, чтобы проверить, является ли маршрут действительным, что-то вроде этого:
if ( RoutingManager::RouterExists($route) )
{
$router = RoutingManager::GetRouter($route);
if ( !$router->IsValid )
RoutingManager::RedirectTo404();
}
Идея состоит в том, чтобы найти ваш обработчик 404 в классе и делегировать задачу маршрутизации в разные классы, чтобы разрешить множество маршрутизаторов и сделать ваше приложение более изменчивым (масштабируемым)
Надеюсь, я смогу помочь!