liberty_code / http
Requires
- php: ~7 || ~8
- liberty_code/authentication: ^1.0.
- liberty_code/data: ^1.0.
- liberty_code/di: ^1.0.
- liberty_code/file: ^1.0.
- liberty_code/library: ^1.0.
- liberty_code/parser: ^1.0.
- liberty_code/register: ^1.0.
- liberty_code/request_flow: ^1.0.
- liberty_code/requisition: ^1.0.
- liberty_code/route: ^1.0.
Requires (Dev)
- liberty_code/cache: ^1.0.
- phpunit/phpunit: v8.5.22
This package is auto-updated.
Last update: 2024-09-08 17:53:48 UTC
README
描述
该库包含HTTP组件,用于在HTTP上下文中使用功能和其它库组件。
要求
- 脚本语言:PHP:版本 7 || 8
安装
有几种可能的安装方式
Composer
要求
它需要安装Composer。更多信息:https://getcomposer.org
命令:在项目根目录下移动
cd "<project_root_path>"
命令:安装
php composer.phar require liberty_code/http ["<version>"]
注意
包含vendor
如果项目使用Composer,必须包含vendor
require_once('<project_root_path>/vendor/autoload.php');
配置
安装命令允许在composer文件"
{ "require": { "liberty_code/http": "<version>" } }
包含
下载
- 下载以下仓库。
- 将其放置在仓库根目录。
包含源代码
require_once('<repository_root_path>/include/Include.php');
配置
主要配置
使用以下类来配置特定元素
use liberty_code\http\config\model\DefaultConfig; DefaultConfig::instanceGetDefault()->get|set...();
可配置元素
- 路由选项
- 请求选项
- 响应选项
使用
URL路由参数
URL路由组件允许处理在URL中使用的路由。
元素
UrlRouteArgData
扩展表格数据功能。允许管理URL路由参数值。
UrlRoute工具
允许提供URL路由功能。
URL参数
URL参数组件允许处理在URL中使用的参数。
元素
UrlArgData
扩展路径表格数据功能。允许管理URL参数值。
头部
头部组件允许处理头部信息。
元素
HeaderData
扩展表格数据功能。允许管理头部信息值。
Header工具
允许提供头部信息功能。
工具
多部分
多部分和多部分数据功能。
响应
响应功能。
CURL
CURL功能。
Cookie
Cookie功能。
注册
使用特定HTTP数据存储作为存储支持进行注册。
元素
SessionRegister
扩展表格注册功能。使用会话数组作为存储支持。
CookieRegister
扩展表格注册功能。使用cookie数组作为存储支持。
示例
...
// Get register
use liberty_code\http\register\session\model\SessionRegister;
$register = SessionRegister::instanceGetDefault();
...
$register->putItem('key_1', '...'); // Register specified item for key 1
$register->putItem('key_N', '...'); // Register specified item for key N
...
foreach($register->getTabKey() as $key) {
var_dump($register->getItem($key));
}
/**
* Show:
* item for key 1
* item for key N
*/
...
路由
路由允许在HTTP上下文中解释特定的源,从HTTP请求中获取可执行内容。
元素
HttpPatternRoute, HttpParamRoute, HttpFixRoute, HttpSeparatorRoute
扩展路由功能。适应所有标准路由,以解释从HTTP请求中获取的特定源。
HttpRouteFactory
扩展DI路由工厂功能。提供HTTP路由实例。
文件
使用特定的HTTP数据来获取信息和内容。
元素
ResponseFile
扩展文件功能。允许从指定的HTTP响应中获取文件信息和内容。
UploadFile
扩展命名文件功能。允许从上传的文件中获取文件信息和内容。
MultipartDataFile
扩展命名文件功能。允许从指定的部分数据源中获取文件信息和内容。
DnlResponseFile
扩展命名文件功能。允许从指定的下载文件HTTP响应中获取文件信息和内容。
HttpFileFactory
扩展文件工厂功能。提供HTTP文件实例。
HttpNameFileFactory
扩展文件工厂功能。提供HTTP命名文件实例。
// Get file factory
use liberty_code\http\file\factory\name\model\HttpNameFileFactory;
$fileFactory = new HttpNameFileFactory();
...
// Get new file from configuration
$file = $fileFactory->getObjFile(array(...));
...
解析器
解析器允许从指定的HTTP源中获取特定格式的数据。
元素
UrlArgParser
扩展字符串表格解析功能。允许从URL参数格式中获取解析数据,作为字符串源。
MultipartDataParser
扩展字符串表格解析功能。允许从多部分格式中获取解析数据,作为字符串源。
HttpStrTableParserFactory
扩展解析器工厂功能。提供HTTP字符串表解析实例。
示例
// Get parser factory
use liberty_code\http\parser\factory\string_table\model\HttpStrTableParserFactory;
$parserFactory = new HttpStrTableParserFactory(
null,
null,
null,
null,
null,
null,
$fileFactory
);
...
// Get new parser, from configuration
$parser = $parserFactory->getObjParser(array(...));
...
// Get parsed data, from source
var_dump($parser->getData(...));
...
// Retrieve source, from parsed data
var_dump($parser->getSource(...));
...
请求
请求允许提供路由源、请求流程处理和HTTP上下文。
元素
HttpRequest
扩展请求功能。允许设计HTTP请求。
示例
class HttpRequestTest extends liberty_code\http\request_flow\request\model\HttpRequest
{
// Define rules to get route source
public function getStrRoute()
{
// Get route source from GET "route" argument
return $this->getGet('route', 'N/A');
}
}
$request = HttpRequestTest::instanceGetDefault();
echo($request->getStrRouteSrc()); // Show "<HTTP method>:<route>"
...
响应
响应允许提供从请求流程处理、在HTTP上下文中可发送的最终内容。
元素
HttpResponse
扩展响应功能。允许设计HTTP响应,包含发送所需的内容。
RedirectResponse
扩展HTTP响应功能。允许设计HTTP重定向响应,包含发送所需的内容。
响应实用工具
解析内容响应允许在HTTP上下文中获取具有特定格式的内容的响应。例如:HTTP JSON响应、HTTP XML响应等...
示例
use liberty_code\http\request_flow\response\model\HttpResponse;
$objResponse = new HttpResponse();
$objResponse->setContent(...);
...
前端控制器
前端控制器允许在HTTP上下文中设计请求流程处理。
元素
HttpFrontController
扩展前端控制器功能。使用HTTP请求来获取HTTP响应。
示例
use liberty_code\http\request_flow\front\model\HttpFrontController;
$frontController = new HttpFrontController();
$frontController->setRouter(...);
$frontController->setActiveRequest(...);
...
// Show response object
var_dump($frontController->execute());
...
请求需求
请求允许处理HTTP发送所需的信息。
元素
HttpRequest
扩展请求功能。允许处理所有HTTP发送所需的信息。
DataHttpRequest
扩展HTTP请求功能。允许在发送信息时处理数据。
PersistorHttpRequest
扩展数据HTTP请求和持久化请求功能。允许通过HTTP协议设置发送到存储支持所需的所有信息。
HttpRequestFactory
扩展模板请求工厂功能。提供HTTP请求实例。
示例
// Get request factory
use liberty_code\http\requisition\request\factory\model\HttpRequestFactory;
$requestFactory = new HttpRequestFactory($parserFactory);
...
// Get new request, from configuration
$request = $requestFactory->getObjRequest(array(...));
...
// Get sending information
var_dump($request->getTabSndInfo());
var_dump($request->getStrMethod());
var_dump($request->getStrUrl());
var_dump($request->getTabHeader());
var_dump($request->getStrBody());
...
请求响应
响应允许处理接收到的HTTP信息。
元素
HttpResponse
扩展响应功能。允许处理所有接收到的HTTP信息。
DataHttpResponse
扩展HTTP响应功能。允许在接收信息时处理数据。
PersistorHttpResponse
扩展数据HTTP响应和持久化响应功能。允许通过HTTP协议从存储支持获取所有接收到的信息。
HttpResponseFactory
扩展响应工厂功能。提供HTTP响应实例。
示例
// Get response factory
use liberty_code\http\requisition\response\factory\model\HttpResponseFactory;
$responseFactory = new HttpResponseFactory($parserFactory);
...
// Get new response, from configuration
$response = $responseFactory->getObjResponse(array(...));
...
// Get reception information
var_dump($response->getIntStatusCode());
var_dump($response->getTabHeader());
var_dump($response->getStrBody());
...
请求客户端
客户端允许处理HTTP请求发送执行和HTTP响应接收。
元素
HttpClient
扩展信息客户端功能。允许处理HTTP(发送、接收)信息,以执行HTTP请求发送。
示例
// Get client
use liberty_code\http\requisition\client\model\HttpClient;
$client = new HttpClient($responseFactory);
...
// Get new response, from request
$response = $client->executeRequest($request);
...
身份验证
身份验证允许使用HTTP请求参数设计一个身份验证类。
元素
HttpAuthentication
扩展身份验证功能。使用HTTP请求参数获取所有标识和认证信息。
示例
// Get HTTP authentication
use liberty_code\http\authentication\authentication\model\HttpAuthentication
$httpAuth = new HttpAuthentication($request);
$httpAuth->setAuthConfig(...);
...
// Get array of identification data
var_dump($httpAuth->getTabIdData());
...
// Get array of authentication data
var_dump($httpAuth->getTabAuthData());
...
测试
单元测试
单元测试允许测试组件功能,并自动化其验证。
要求
Composer
它需要安装Composer。更多信息:https://getcomposer.org
命令:依赖项安装
php composer.phar install
命令:运行单元测试
vendor\bin\phpunit
注意
它使用PHPUnit处理单元测试。更多信息请访问:https://phpunit.readthedocs.io