v1.0.1 2024-06-08 17:16 UTC

This package is auto-updated.

Last update: 2024-09-08 17:53:48 UTC


README

描述

该库包含HTTP组件,用于在HTTP上下文中使用功能和其它库组件。

要求

  • 脚本语言:PHP:版本 7 || 8

安装

有几种可能的安装方式

Composer

  1. 要求

    它需要安装Composer。更多信息:https://getcomposer.org

  2. 命令:在项目根目录下移动

     cd "<project_root_path>"
    
  3. 命令:安装

     php composer.phar require liberty_code/http ["<version>"]
    
  4. 注意

    • 包含vendor

      如果项目使用Composer,必须包含vendor

        require_once('<project_root_path>/vendor/autoload.php');
      
    • 配置

      安装命令允许在composer文件"

        {
            "require": {
                "liberty_code/http": "<version>"
            }
        }
      

包含

  1. 下载

    • 下载以下仓库。
    • 将其放置在仓库根目录。
  2. 包含源代码

     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());
...

测试

单元测试

单元测试允许测试组件功能,并自动化其验证。

  1. 要求

    • Composer

      它需要安装Composer。更多信息:https://getcomposer.org

    • 命令:依赖项安装

        php composer.phar install
      
  2. 命令:运行单元测试

     vendor\bin\phpunit
    
  3. 注意

    它使用PHPUnit处理单元测试。更多信息请访问:https://phpunit.readthedocs.io