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.
- 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).
- PHP 8.5.7 ou superior.
- php-tool-kit/validator
^1.0.
Instale via Composer:
composer require php-tool-kit/requestA 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);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;
}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.
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
}| 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.). |
A documentação completa está disponível em https://php-tool-kit.github.io/request/html/.
Clone o repositório e instale as dependências:
git clone https://github.com/php-tool-kit/request.git
cd request
composer install| 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. |
- Issues: https://github.com/php-tool-kit/request/issues
- E-mail: [email protected]
Este projeto é licenciado sob a Licença MIT.
Documentação gerada com auxílio de ferramentas de I.A.