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

3.0.0 2026-01-10 19:35 UTC

This package is auto-updated.

Last update: 2026-01-10 19:48:22 UTC


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://mugomes.github.io

📺 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.