webshr / psr7-server-request-extension

该软件包最新版本(0.1.0)的许可证信息不可用。

0.1.0 2024-04-05 08:58 UTC

This package is not auto-updated.

Last update: 2024-09-21 09:22:08 UTC


README

提供特质,这些特质将实用函数添加到PSR7 ServerResponse子类,使其更容易与URI和输入交互。受Rareloop的PSR7实用函数启发。

安装

composer require webshr/psr7-server-request-extension

创建ServerRequest

创建PSR7兼容的ServerRequest对象的一个子类(例如 Laminas)并添加InteractsWithInputInteractsWithUri特质。

<?php

namespace App;

use Webshr\Psr7ServerRequestExtension\InteractsWithInput;
use Webshr\Psr7ServerRequestExtension\InteractsWithUri;
use Laminas\Diactoros\ServerRequest;

class MyServerRequest extends ServerRequest
{
    use InteractsWithInput, InteractsWithUri;
}

使用方法

获取路径

$request->path();

获取URL

$request->url(); // e.g. http://test.com/path
$request->fullUrl(); // e.g. http://test.com/path?foo=bar

获取所有查询参数

$request->query();

获取特定查询参数

$request->query('name');
$request->query('name', 'Jane'); // Defaults to "Jane" if not set

获取所有POST参数

$request->post();

获取特定POST参数

$request->post('name');
$request->post('name', 'Jane'); // Defaults to "Jane" if not set

获取所有输入参数

$request->input();

获取特定输入参数

$request->input('name');
$request->input('name', 'Jane'); // Defaults to "Jane" if not set

请求是否有特定输入键?

if ($request->has('name')) {
    // do something
}

if ($request->has(['name', 'age'])) {
    // do something if both 'name' and 'age' are present
}