mugomes / miphantroute
Biblioteca para trabalhar com rotas de uma forma mais fácil.
Installs: 10
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/mugomes/miphantroute
README
MiPhantRoute é uma biblioteca leve, minimalista e funcional em PHP para roteamento baseado em URL com suporte nativo a Expressões Regulares (Regex).
Ela foi criada para quem deseja controle total, zero dependências e nenhuma abstração excessiva, sendo ideal para todo tipo de projeto.
✨ Características
- Roteamento por URL com Regex
- Captura de parâmetros diretamente via regex
- Paradigma funcional (callbacks)
- Suporte a PHP 8.4+
- Compatível com servidor embutido (
php -S) - Extração de partes da URL
- Tratamento simples de 404
- Zero dependências
- Código pequeno, legível e previsível
📦 Instalação
Via Composer
composer require mugomes/miphantroute
Manual
Copie o arquivo MiPhantRoute.php para seu projeto e faça a inclusão via autoloader ou require.
🚀 Uso básico
use MiPhantRoute\MiPhantRoute; $route = new MiPhantRoute(); $route->getPart('/', function () { echo 'Página inicial'; }); $route->getPart('/contato', function () { echo 'Página de contato'; }); $route->getError(function () { http_response_code(404); echo '404 - Página não encontrada'; });
🌐 Funcionamento da URL
Para uma URL como:
/blog/post/123
A biblioteca gera internamente:
[ '/blog/post/123', ['blog', 'post', '123'] ]
🧠 Roteamento com Regex
O método getPart() aceita expressões regulares completas, permitindo capturar parâmetros da URL automaticamente.
Exemplo simples
$route->getPart('/blog', function () { echo 'Página do blog'; });
📌 Captura de parâmetros
$route->getPart('/blog/post/([0-9]+)', function ($id) { echo "Post ID: {$id}"; });
URL acessada:
/blog/post/42
Resultado:
Post ID: 42
📌 Múltiplos parâmetros
$route->getPart('/user/([a-z]+)/([0-9]+)', function ($username, $id) { echo "Usuário: {$username} | ID: {$id}"; });
URL:
/user/joao/10
📖 Métodos auxiliares
getArrayURLs(): array
$route->getArrayURLs(); // ['blog', 'post', '123']
getFullURL(): string
$route->getFullURL(); // blog/post/123
getURL(int $index): string
$route->getURL(0); // blog $route->getURL(1); // post $route->getURL(2); // 123
getFirstURL(): string
$route->getFirstURL(); // blog
getPenultimateURL(): string
$route->getPenultimateURL(); // post
getLastURL(): string
$route->getLastURL(); // 123
❌ Tratamento de erro 404
Se nenhuma rota corresponder, o callback definido em getError() será executado:
$route->getError(function () { http_response_code(404); echo 'Página não encontrada'; });
👤 Autor
Murilo Gomes Julio
📺 https://youtube.com/@mugomesoficial
📜 License
Copyright (c) 2025-2026 Murilo Gomes Julio
Licensed under the MIT.
All contributions to the MiPhantRoute are subject to this license.