PHPackages                             edgvi10/router - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. edgvi10/router

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

edgvi10/router
==============

Uma biblioteca PHP com métodos utilitários para facilitar o desenvolvimento de aplicações.

1.0.6(5mo ago)09MITPHPPHP &gt;=7.4

Since Nov 26Pushed 5mo agoCompare

[ Source](https://github.com/edgvi10/PkgRouterController)[ Packagist](https://packagist.org/packages/edgvi10/router)[ RSS](/packages/edgvi10-router/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (4)Used By (0)

Router Controller
=================

[](#router-controller)

[![PHP Version](https://camo.githubusercontent.com/c3362351d1264fd924675776c4f8307bf5f229fa15cbbd49d020909278dadb3a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344372e342d626c7565)](https://camo.githubusercontent.com/c3362351d1264fd924675776c4f8307bf5f229fa15cbbd49d020909278dadb3a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344372e342d626c7565)[![License](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)[![Version](https://camo.githubusercontent.com/f0a01548b05bdae9b97b392e8a89f5da69f894adbd2323e2a36479556a5ec8ce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e302e312d6f72616e6765)](https://camo.githubusercontent.com/f0a01548b05bdae9b97b392e8a89f5da69f894adbd2323e2a36479556a5ec8ce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e302e312d6f72616e6765)

Uma biblioteca PHP moderna e leve para roteamento de requisições HTTP, com suporte a middlewares, grupos de rotas e validações integradas.

📋 Índice
--------

[](#-índice)

- [Características](#-caracter%C3%ADsticas)
- [Requisitos](#-requisitos)
- [Instalação](#-instala%C3%A7%C3%A3o)
- [Configuração do Servidor](#-configura%C3%A7%C3%A3o-do-servidor)
    - [Apache (.htaccess)](#apache-htaccess)
    - [Nginx](#nginx)
- [Uso Básico](#-uso-b%C3%A1sico)
- [Rotas](#-rotas)
- [Grupos de Rotas](#-grupos-de-rotas)
- [Middlewares](#-middlewares)
- [Request](#-request)
- [Response](#-response)
- [Exemplos Práticos](#-exemplos-pr%C3%A1ticos)
- [Licença](#-licen%C3%A7a)

✨ Características
-----------------

[](#-características)

- ✅ Roteamento RESTful completo (GET, POST, PUT, PATCH, DELETE, OPTIONS)
- ✅ Suporte a parâmetros dinâmicos nas rotas
- ✅ Sistema de middlewares global e por rota
- ✅ Grupos de rotas com prefixos e middlewares compartilhados
- ✅ Request e Response objects com métodos úteis
- ✅ Middlewares prontos (CORS, Auth, Rate Limit, etc.)
- ✅ Suporte a JSON e HTML
- ✅ Sistema de logs de erros
- ✅ Modo debug para desenvolvimento

📦 Requisitos
------------

[](#-requisitos)

- PHP &gt;= 7.4
- Composer

🚀 Instalação
------------

[](#-instalação)

Instale via Composer:

```
composer require edgvi10/router
```

Ou adicione ao seu `composer.json`:

```
{
    "require": {
        "edgvi10/router": "^1.0"
    }
}
```

⚙️ Configuração do Servidor
---------------------------

[](#️-configuração-do-servidor)

### Apache (.htaccess)

[](#apache-htaccess)

Crie um arquivo `.htaccess` na raiz do projeto:

```
# Habilita o módulo de reescrita
RewriteEngine On

# Redireciona para HTTPS (opcional)
# RewriteCond %{HTTPS} off
# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Remove trailing slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Redireciona tudo para index.php exceto arquivos e diretórios reais
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

# Proteção de arquivos sensíveis

    Order allow,deny
    Deny from all

# Configurações de segurança
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"

# Configurações de cache (ajuste conforme necessário)

    ExpiresActive On
    ExpiresByType application/json "access plus 0 seconds"

```

### Nginx

[](#nginx)

Adicione ao seu arquivo de configuração do Nginx:

```
server {
    listen 80;
    listen [::]:80;

    server_name seu-dominio.com;
    root /var/www/html;
    index index.php;

    # Redireciona para HTTPS (opcional)
    # return 301 https://$server_name$request_uri;

    # Charset
    charset utf-8;

    # Logs
    access_log /var/log/nginx/seu-projeto-access.log;
    error_log /var/log/nginx/seu-projeto-error.log;

    # Remove trailing slashes
    rewrite ^/(.*)/$ /$1 permanent;

    # Configuração principal
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Processa arquivos PHP
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # Ajuste para sua versão do PHP
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

        # Timeouts
        fastcgi_read_timeout 300;
        fastcgi_send_timeout 300;
    }

    # Nega acesso a arquivos sensíveis
    location ~ /\.(ht|git|env) {
        deny all;
    }

    location ~ /composer\.(json|lock)$ {
        deny all;
    }

    # Headers de segurança
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;

    # Desabilita logs para arquivos estáticos (opcional)
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
        expires 1y;
        access_log off;
        add_header Cache-Control "public, immutable";
    }
}

# Configuração HTTPS (opcional)
# server {
#     listen 443 ssl http2;
#     listen [::]:443 ssl http2;
#
#     server_name seu-dominio.com;
#     root /var/www/html;
#     index index.php;
#
#     ssl_certificate /path/to/cert.pem;
#     ssl_certificate_key /path/to/key.pem;
#
#     # Resto da configuração igual ao bloco acima
# }
```

📖 Uso Básico
------------

[](#-uso-básico)

```
