Это очень коряво. одно название класса «D» уже достаточно, чтобы понять, что код будет хреновым.
Это не ООП код, не обманывайте себя, классы Вам не нужны здесь. Если Вы любите статические методы — пишите функции, т.к. статические методы это процедурное программирование.
Искали ли Вы существующие готовые решения? Вот это, например:
symfony.com/doc/current/components/routing.html
Тратьте больше времени на чтение книг, меньше на изобретение того, что уже сотни раз изобретено.