vertilia / request
简单库,用于抽象请求(CLI、HTTP等)
v1.6.0
2023-06-08 13:19 UTC
Requires
- php: >=7.4
- vertilia/mime-type: ^1.0
- vertilia/valid-array: ^1
Requires (Dev)
- phpunit/phpunit: ^9
README
简单库,用于抽象请求信息和验证用户输入。
基于 ValidArray
构建,它不仅提供对主要请求信息的访问,还集成了输入参数过滤。这使得可以简化访问验证过的请求参数,如下例所示
<?php $request = new \Vertilia\Request\HttpRequest( $_SERVER, $_GET, $_POST, $_COOKIE, file_get_contents('php://input'), [ 'id' => ['filter' => \FILTER_VALIDATE_INT, 'options' => ['min_range' => 1]], 'name' => \FILTER_DEFAULT, 'email' => \FILTER_VALIDATE_EMAIL, 'profile' => ['filter' => \FILTER_VALIDATE_URL, 'flags' => \FILTER_FLAG_HOST_REQUIRED], ] ); print_r($request['id']); print_r($request['name']); print_r($request['email']); print_r($request['profile']);
在上面的示例中,$request
使用HTTP请求数据初始化,定义输入参数过滤器,并尝试从HTTP头、cookie、POST和GET参数中检索它们。在用于其他HTTP方法的情况下,它根据Content-Type
HTTP头解析php://input
。然后根据提供的过滤器对所有找到的参数进行验证。
输入验证保证了用户数据为指定类型。未在过滤器列表中提及的输入参数将被忽略。不符合过滤器的参数被设置为false
。缺失的参数被设置为null
。
所采用的过滤机制是自php-5.2
以来的标准PHP扩展。
见 PHP Filter扩展。