php-tool-kit / request
Manipula requisições HTTP.
Requires
- php: >=8.5.7
- php-tool-kit/validator: ^1.0
Requires (Dev)
- pestphp/pest: 5.x-dev
- pestphp/pest-plugin-type-coverage: 5.x-dev
- phpstan/extension-installer: 1.4.x-dev
- phpstan/phpstan: 2.2.x-dev
- squizlabs/php_codesniffer: 4.x-dev
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
ptk/request é uma biblioteca PHP para manipular requisições HTTP de forma orientada a objetos.
Ela encapsula os dados das superglobais do PHP ($_GET, $_POST, $_COOKIE e $_SERVER) em objetos com interface padronizada, facilitando leitura, iteração e validação de dados de requisição.
Este pacote faz parte do PHP Tool Kit (PTK), um conjunto de bibliotecas para desenvolvimento em PHP.
Recursos
- Acesso encapsulado e tipado aos dados de
$_GET,$_POST,$_COOKIEe$_SERVER. - Propriedades da requisição expostas como atributos imutáveis (
readonly) e tipados. - Validação integrada dos dados por meio do pacote php-tool-kit/validator.
- Iteração fácil sobre os dados coletados (
ArrayIterator).
Requisitos
- PHP 8.5.7 ou superior.
- php-tool-kit/validator
^1.0.
Instalação
Instale via Composer:
composer require php-tool-kit/request
Uso básico
Acessando todas as informações da requisição
A classe Request agrupa os dados de $_GET, $_POST, $_COOKIE e $_SERVER em um único objeto:
<?php use Ptk\Request\Request; $request = new Request(); // Método HTTP da requisição (string|null) echo $request->requestMethod; // URI completa (string|null) echo $request->requestUri; // Indica se a requisição usa HTTPS (bool|null) var_dump($request->https); // Endereço IP do cliente (string|null) echo $request->remoteAddr; // Timestamp do início da requisição (DateTimeImmutable|null) echo $request->requestTime?->format('d/m/Y H:i:s'); // Query string como array associativo (string|true por valor) var_dump($request->queryString);
Trabalhando com os dados de GET, POST e COOKIE
As classes Get, Post e Cookie expõem os dados das superglobais correspondentes:
<?php use Ptk\Request\Get; use Ptk\Request\Post; use Ptk\Request\Cookie; $get = new Get(); // Recupera o valor de uma chave específica (ou null se não existir) $page = $get->get('page'); // Itera sobre todos os parâmetros recebidos foreach ($get->iterator() as $key => $value) { echo "{$key}: {$value}" . PHP_EOL; }
Validação dos dados
Para validar os dados, informe um mapa associativo de validadores
(Ptk\Validator\Validator), onde a chave é o nome do campo:
<?php use Ptk\Request\Get; use Ptk\Validator\Validator; $validators = [ 'page' => new Validator(/* configuração do validador */), 'q' => new Validator(/* configuração do validador */), ]; $get = new Get(); $result = $get->validate($validators); // O resultado contém, para cada campo, um array com o resultado da validação: // - Campos sem validador associado recebem null. var_dump($result);
Nota: chaves presentes nos dados, mas sem validador correspondente, retornam
null. O método dispara umaRuntimeExceptioncaso um item do array de validadores não seja uma instância dePtk\Validator\Validator.
Iteração
Todas as classes que estendem Data disponibilizam o método iterator(),
que retorna um ArrayIterator permitindo uso direto em estruturas foreach:
<?php use Ptk\Request\Cookie; foreach ((new Cookie())->iterator() as $name => $value) { // processa cada cookie recebido }
Estrutura das classes
| Classe | Descrição |
|---|---|
Ptk\Request\Data |
Classe abstrata base. Fornece acesso (get()), iteração (iterator()) e validação (validate()) dos dados. |
Ptk\Request\Get |
Encapsula $_GET. |
Ptk\Request\Post |
Encapsula $_POST. |
Ptk\Request\Cookie |
Encapsula $_COOKIE. |
Ptk\Request\Request |
Encapsula a requisição completa, incluindo $_SERVER (método, protocolo, URI, cabeçalhos de autenticação etc.). |
Documentação
A documentação completa está disponível em https://php-tool-kit.github.io/request/html/.
Desenvolvimento
Clone o repositório e instale as dependências:
git clone https://github.com/php-tool-kit/request.git
cd request
composer install
Scripts disponíveis
| Comando | Descrição |
|---|---|
composer test |
Executa os testes (Pest) com cobertura de código e cobertura de tipos. |
composer static |
Executa a análise estática com PHPStan. |
composer code |
Corrige (phpcbf) e verifica (phpcs) o padrão de código PSR-1/PSR-2/PSR-12. |
Suporte
- Issues: https://github.com/php-tool-kit/request/issues
- E-mail: everton3x@gmail.com
Licença
Este projeto é licenciado sob a Licença MIT.
Autor
Documentação gerada com auxílio de ferramentas de I.A.