League URI Manipulations 项目教程
1. 项目的目录结构及介绍
League URI Manipulations 项目的目录结构如下:
/uri-manipulations
├── src
│ ├── Functions.php
│ ├── Middleware
│ │ ├── AppendQuery.php
│ │ ├── DataPath.php
│ │ ├── FilterQuery.php
│ │ ├── MergeQuery.php
│ │ ├── ModifyQuery.php
│ │ ├── RemoveQuery.php
│ │ ├── ReplaceQuery.php
│ │ ├── SortQuery.php
│ │ └── UriMiddleware.php
│ └── UriMiddleware.php
├── tests
│ ├── FunctionsTest.php
│ ├── Middleware
│ │ ├── AppendQueryTest.php
│ │ ├── DataPathTest.php
│ │ ├── FilterQueryTest.php
│ │ ├── MergeQueryTest.php
│ │ ├── ModifyQueryTest.php
│ │ ├── RemoveQueryTest.php
│ │ ├── ReplaceQueryTest.php
│ │ ├── SortQueryTest.php
│ │ └── UriMiddlewareTest.php
│ └── UriMiddlewareTest.php
├── composer.json
├── LICENSE
├── README.md
└── CONTRIBUTING.md
目录结构介绍
src
:包含项目的源代码文件。Functions.php
:包含一些用于 URI 操作的辅助函数。Middleware
:包含各种 URI 中间件类,用于处理和操作 URI 对象。
tests
:包含项目的单元测试文件。FunctionsTest.php
:用于测试Functions.php
中的辅助函数。Middleware
:包含各种中间件类的测试文件。
composer.json
:Composer 依赖管理文件。LICENSE
:项目许可证文件。README.md
:项目说明文档。CONTRIBUTING.md
:贡献指南文档。
2. 项目的启动文件介绍
项目的启动文件主要是 src/UriMiddleware.php
,这个文件定义了 URI 中间件的基本接口和一些通用的中间件操作。
namespace League\Uri\Manipulations;
use Psr\Http\Message\UriInterface;
interface UriMiddleware
{
public function process(UriInterface $uri): UriInterface;
}
启动文件介绍
UriMiddleware
接口:定义了处理 URI 对象的基本方法process
,所有具体的中间件类都需要实现这个接口。
3. 项目的配置文件介绍
项目的配置文件主要是 composer.json
,这个文件定义了项目的依赖、脚本和其他配置信息。
{
"name": "league/uri-manipulations",
"description": "URI manipulation library",
"require": {
"php": ">=7.0",
"ext-intl": "*",
"league/uri-components": "^1.8.0",
"league/uri-interfaces": "^1.0",
"psr/http-message": "^1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.0",
"guzzlehttp/psr7": "^1.2",
"league/uri-schemes": "^1.2",
"phpstan/phpstan": "^0.9.2",
"phpstan/phpstan-phpunit": "^0.9.4",
"phpstan/phpstan-strict-rules": "^0.9.0",
"phpunit/phpunit": "^6.0",
"zendframework/zend-diactoros": "1.4.0"
},
"license": "MIT",
"authors": [
{
"name": "Ignace Nyamagana Butera",
"email": "nyamsprod@gmail.com"
}
],
"autoload": {
"psr-4": {
"League\\Uri\\Manipulations\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"League\\Uri\\Manipulations\\Tests\\": "tests/"
}
}
}