middlewares/method-override

通过X-Http-Method-Override头重写请求方法的中间件

v2.0.1 2020-12-02 00:06 UTC

This package is auto-updated.

Last update: 2024-08-29 04:25:29 UTC


README

Latest Version on Packagist Software License Testing Total Downloads

使用X-Http-Method-Override头重写请求方法的中间件。这对于无法发送GET和POST以外方法的客户端很有用。

要求

安装

此包可通过Composer安装和自动加载,名称为 middlewares/method-override

composer require middlewares/method-override

示例

Dispatcher::run([
    (new Middlewares\MethodOverride())
        ->getMethods(['HEAD', 'CONNECT', 'TRACE', 'OPTIONS'])
        ->postMethods(['PATCH', 'PUT', 'DELETE', 'COPY', 'LOCK', 'UNLOCK'])
        ->queryParameter('method')
        ->parsedBodyParameter('method')
]);

用法

在构造函数中,您可以提供一个 Psr\Http\Message\ResponseFactoryInterface 来创建错误响应(405)。如果未定义,则 Middleware\Utils\Factory 将自动检测它。

$responseFactory = new MyOwnResponseFactory();

$override = new Middlewares\MethodOverride($responseFactory);

getMethods

允许定义可以重写GET方法的方法。默认为 ['HEAD', 'CONNECT', 'TRACE', 'OPTIONS']

//The GET method can be overrided only with HEAD and CONNECT
$override = (new Middlewares\MethodOverride())->getMethods(['HEAD', 'CONNECT']);

postMethods

包含可以重写POST方法的方法的数组。默认为 ['PATCH', 'PUT', 'DELETE', 'COPY', 'LOCK', 'UNLOCK']

//The POST method can be overrided only with DELETE and PUT 
$override = (new Middlewares\MethodOverride())->getMethods(['DELETE', 'PUT']);

queryParameter

允许在GET请求中使用查询参数,除了 X-Http-Method-Override。例如 http://example.com/view/23?method=HEAD

//The method can be override with ?new_method=OPTIONS
$override = (new Middlewares\MethodOverride())->queryParameter('new_method');

parsedBodyParameter

允许在POST中使用解析后的正文参数,除了 X-Http-Method-Override

有关最近更改的更多信息,请参阅CHANGELOG,有关贡献细节,请参阅CONTRIBUTING

MIT许可证(MIT)。有关更多信息,请参阅LICENSE