linkeddatacenter/url-rewriter

此包已被废弃且不再维护。未建议替代包。

中间件用于更改请求URI。

1.0.0 2019-09-23 08:09 UTC

This package is auto-updated.

Last update: 2024-01-23 18:06:04 UTC


README

Latest Version on Packagist Software License Build Status Quality Score

一个简单的中间件,用于重写HTTP请求URI的路径、查询和片段。它需要一个按顺序评估的规则数组。规则是一个两位数组:array[0]是要搜索的正则表达式模式(内部转换为#^$pattern$#),array[1]是根据PHP函数preg_replace进行的替换。

灵感来自 middlewares/base-path

需求

  • PHP >= 7.0
  • PSR-7 http消息实现(Diactoros、Guzzle、Slim等)
  • PSR-15中间件调度器

安装

此包可通过Composer以 linkeddatacenter/url-rewriter 的方式安装和自动加载。

composer require linkeddatacenter/url-rewriter

示例

$dispatcher = new Dispatcher([
	new Middlewares\BasePath([
	[
            '/(\w+)' => '/$1/pluto',
            '/(\w+)/(\w+)/(\w+).(csv|json|xml)(.*)' =>'/$1/docstore?db=$2&table=$3&format=$4$5',
	])
]);

$response = $dispatcher->dispatch(new ServerRequest());

选项

__construct(array $rules)

rules := array [ , ,.... ] rule := array [ , ]

使用Docker进行测试

docker run --rm -ti -v $PWD/.:/app composer composer install
docker run --rm -ti -v $PWD/.:/app composer vendor/bin/phpunit

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

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