Quando decidi construir meu próprio CMS, a primeira grande decisão foi: como gerenciar as rotas sem cair na armadilha de adicionar uma dependência pesada só para isso?

O Problema do Roteamento Nativo

A maioria dos frameworks de roteamento resolve o problema corretamente, mas traz consigo um ecossistema inteiro de convenções, abstrações e arquivos de configuração que nem sempre se encaixam em um projeto proprietário.

A Solução: Dispatcher Simples e Direto

A ideia central é um array associativo de padrões URI mapeando para handlers. O PHP faz a comparação via regex e despacha para a função ou método adequado.

$routes = [
    'GET' => [
        '/'           => 'HomeController@index',
        '/posts/{id}' => 'PostController@show',
        '/about'      => 'AboutController@index',
    ],
    'POST' => [
        '/contact' => 'ContactController@send',
    ]
];

O grande ganho está na legibilidade: qualquer desenvolvedor que entra no projeto entende imediatamente o mapa de rotas sem precisar estudar a documentação de um framework externo.

Hierarquia de Páginas e Breadcrumbs

A parte mais interessante veio depois: como gerar breadcrumbs automaticamente a partir da hierarquia de URLs? Desenvolvi o método buildPageAncestors() que percorre recursivamente a árvore de páginas do banco de dados e monta o caminho de navegação de forma limpa.

O resultado é uma arquitetura enxuta, performática e 100% sob controle — sem surpresas escondidas em três camadas de abstração.