Download the PHP package elzobrito/olivia-router without Composer
On this page you can find all versions of the php package elzobrito/olivia-router. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package olivia-router
OliviaRouter
Um roteador PHP simples, leve e performático inspirado em frameworks modernos como Laravel e Symfony.
Mantém compatibilidade com a versão original, mas com melhorias importantes: CSRF validado no dispatcher, código mais organizado, suporte a PUT/DELETE/PATCH e núcleo unificado com Request, Route, RouterConfig e Trie.
Recursos
- Rotas por método HTTP:
GET,POST,PUT,DELETE,PATCH - Parâmetros dinâmicos como
{id}e{slug} - Middlewares por rota via chaining
- Proteção CSRF opcional
- Factories para controllers e middlewares
- Matching centralizado com
Trie - Compatibilidade com o fluxo legado baseado em
execute($request_data)
Requisitos
- PHP 7.4 ou superior
- Composer autoload configurado
- Cookies habilitados no navegador
- Opcionalmente, compatibilidade com sessão legada via
session_start()
Instalação
- Instale ou copie o pacote para o projeto.
-
Gere o autoload do Composer, se necessário:
- Configure os cookies do roteador no bootstrap da aplicação:
Se você ainda usa a integração antiga, o pacote continua aceitando $_SESSION['App_folder'], $_SESSION['Controller_folder'], $_SESSION['Middleware_folder'], $_SESSION['BASENAME'], $_SESSION['CSRF'] e $_SESSION['UUID'] como fallback.
Os mesmos valores também podem ser enviados por cookie com os nomes antigos ou com os aliases OLIVIA_*. Em chamadas manuais de execute($requestData), você pode informar isso em COOKIE.
Uso Básico
O formato legado continua aceito:
- Controller e middleware podem ser passados como
users#show,AuthMiddleware,authou namespace completo. execute()ainda aceita o array tradicional com dados da requisição.
Middlewares
Crie middlewares em App\Middleware\ com um método handle():
Uso:
Proteção CSRF
Com OLIVIA_CSRF=true, o roteador valida automaticamente o campo _token nas requisições POST, PUT, PATCH e DELETE.
Exemplo em formulário HTML:
Se o token estiver ausente ou inválido, uma RuntimeException é lançada.
Uso com Objetos
Também é possível usar diretamente as classes do núcleo refatorado:
Melhorias da Refatoração
- Configuração centralizada em
RouterConfig, com prioridade para cookies e fallback para$_SESSION - Origem do contexto isolada em stores dedicados para cookie, sessão e fallback
- Dispatcher trabalhando com
RequesteRoute - Compatibilidade com rotas legadas em array
- Resolução de controller e middleware mais robusta
- Suporte a
PUT,DELETEePATCH - Parsing de URI com suporte a query string no matching
- CSRF com token lido de cookie
- Erros mais claros para classes e métodos inexistentes
Estrutura Atual
OliviaRouter: simples, direto e compatível com código legado.