Есть ли косяки в роутинге?
Лень читать тело методов, но мне не нравится конструктор, не перегружайте его лишними данными, он обычно служит для инициализации переменных и т.д. остальную логику перенесите в методы, так легче будет поддерживать код
почитай - www.phpinfo.su/articles/practice/chpu_na_php.html
вот это if ( Logic::get() === "frontend") {

if ( $this->uri[1] === "news"

if ( $this->uri[1] === "catalog"
лютый треш. неужели сам не видишь, что это говнокод хардкод? Куча стремных if-ов, монолитность, непереносимость. Все делается ГОРАЗДО проще. Прочитай статью. if (Logic::get() === "backend") {
нет никакого frontend и бекенд. с точки зрения роутинга - это просто разные контроллеры.