devpontes/route

Simples componente de rotas para projetos pequenos baseados em MVC

v3.0.0 2025-09-02 13:02 UTC

This package is auto-updated.

Last update: 2025-09-02 13:28:16 UTC


README

Maintainer Source Code PHP from Packagist Latest Version Software License Build Quality Score Total Downloads

About Route componet

Route is a simple and lightweight route management component designed for small projects based on MVC architecture.

O Route é um componente simples e leve de gerenciamento de rotas, projetado para pequenos projetos baseados em arquitetura MVC.

Highlights

  • Suporte a rotas nomeadas. (named routes)
  • Modo estrito para diferenciação de URLs. (strict mode)
  • Configuração simples e intuitiva. (simple to set up)
  • Padrão de rota: controller/method/{parameter}.

Instalação

Installation is available through Composer:

"devpontes/route": "3.*"

or run

composer require devpontes/route

Documentation

1. Configuração

To use Route, all application requests must be redirected to the index.php file, which will act as the Front Controller. Example using Apache (.htaccess)

Para utilizar o Route, todas as requisições da aplicação devem ser redirecionadas para o arquivo index.php, que atuará como o Front Controller. Exemplo usando o Apache (.htaccess):

Apache

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

2. Definição de Rotas

Routes must be defined in an array in the format [path, controller@method]

As rotas devem ser definidas em um array no formato [path, controller@method]:

$routes = [
    ['/', 'Home@index'],
    ['/blog', 'Blog@index'],
    ['/contato', 'Contact@index'],
    ['/contato/{id}', 'Contact@index'],
    ['/not-found/404', 'Notfound@index'],
];

3. Captura da URL

The request URL must be captured and passed to the component in the constructor or via the setter method.

A URL da requisição deve ser capturada e passada ao componente no construtor ou via metodo setter. Exemplo com servidor Apache:

$url = $_GET['url'];

ou usando a pasta publica

$url = $_SERVER['REQUEST_URI'];

4. Inicialização

On component initialization: 1 - Enter the routes array; 2 - Configure the controllers' namespace (the same as defined in composer.json); 3 - Run with the run() method.

Na inicialização do componente:

  1. Informe o array de rotas.
  2. Configure o namespace dos controladores (mesmo definido no composer.json).
  3. Execute com o método run().
Usage
$route = new \DevPontes\Route\Route($routes);
$route->setUrl($url);
$route->namespace("App\Controller");
$route->run();

5. Tratamento de Erros

To capture unconfigured routes, use the fail method

Para capturar rotas não configuradas, utilize o método fail:

if ($route->fail()) {
    header('Location: /not-found/404');
}

6. Modo Estrito

Strict mode differentiates between routes with and without trailing slashes.

O modo estrito diferencia rotas com e sem barra final. Exemplo:

  • /sobre/sobre/ (strict mode enabled).
  • /sobre = /sobre/ (strict mode disabled).
Enabling/disabling
$route->setStrictMode(true);

Credits

License

The MIT License (MIT).