vertilia/request

简单库,用于抽象请求(CLI、HTTP等)

v1.6.0 2023-06-08 13:19 UTC

This package is auto-updated.

Last update: 2024-09-08 16:04:58 UTC


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扩展