API 文档 - ginkgo


ginkgo\Http

HTTP 请求处理


类摘要

namespace ginkgo;

class Http {
    // 属性
    public $error;
    public $rule = 'md5';
    public $config = array();
    public $caInfo;
    public $result;
    public $errno;
    public $statusCode;

    public $mimeRows = array();
    public $fileInfo = array(
        'name'      => '',
        'tmp_name'  => '',
        'ext'       => '',
        'mime'      => '',
        'size'      => 0,
    );

    public $httpHeader = array(
        'Content-Type'  => 'application/x-www-form-urlencoded; charset=UTF-8',
        'Accept'        => 'application/json',
    );

    protected static $instance;

    private $configThis = array(
        'scheme'          => '',
        'charset'         => 'UTF-8',
        'port'            => '',
        'accept'          => 'application/json',
        'curlopt_header'  => false,
        'verify_peer'     => false,
        'verify_host'     => false,
        'return_transfer' => true,
        'timeout'         => 30,
    );

    private $res_curl;
    private $obj_file;
    private $hostUrl;

    // 方法
    public static instance( [ array $config ] ) : object
    public config( array $config )
    public request( string $url [, array $data [, string $method = 'get' ]] ) : mixed
    public getRemote( string $url [, array $data [, string $method = 'get' ]] ) : array
    public move( string $dir [, $name = true [, $replace = true ]] ) : bool
    public setHeader( mixed $header [, string $value ] )
    public setAccept( string $type )
    public contentType( string $contentType [, string $charset ] )
    public port( [ int $port ] )
    public getResult() : mixed
    public getError() : string
    public getErrno() : int
    public getStatusCode() : int
    public getMime( string $path [, $mime = false ] ) : string
    public getExt( string $path [, $mime = false ] ) : string
    public getInfo( [ string $name ] ) : mixed
    public setMime( mixed $mime [, array $value ] )
    public rule( string $rule )

    protected __construct( array $config ) : object
    protected __clone()

    private optProcess( array $opts )
    private urlProcess( string $url ) : bool
    private resultProcess( mixed $result ) : mixed
    private dataProcess( mixed $data ) : string
    private httpHeaderProcess() : array
    private genFilename( [ bool $name = true ] ) : string
    private verifyFile( string $ext [, string $mime ] ) : bool
}

成员目录

- 权限 类型 描述
属性 - - -
$config public array 配置
$caInfo public string 证书路径
$result public string 返回结果
$errno public int 错误号
$statusCode public string 状态码
$httpHeader public string HTTP 头信息
$error public string 错误
$rule public string 生成文件名规则(函数名)
$mimeRows public array MIME 池
$fileInfo public array 默认 $_FILES 结构
$instance protected object static 本类实例
$configThis private array 默认配置
$res_curl private resource CURL 连接资源
$obj_file private object 文件对象
$hostUrl private string 主机 URL
方法 - - -
instance() public static 实例化
config() public 配置
request() public 发起请求
getRemote() public 发起远程请求并保存为临时文件
move() public 把远程请求到的临时文件移动到指定目录
setHeader() public 设置 HTTP 头
setAccept() public 设置请求返回的类型
contentType() public 设置请求内容的类型
port() public 设置端口
getResult() public 获取原始返回内容
getError() public 获取错误
getErrno() public 获取错误号
getStatusCode() public 获取状态码
getMime() public 获取文件的 MIME 类型
getExt() public 获取文件的扩展名
getInfo() public 获取文件信息
setMime() public 设置生成文件名规则(函数名)
rule() public 设置 MIME
__construct() protected instance()
__clone() protected 克隆,无实际功能,仅供限制为单例模式使用
optProcess() private 选项处理,0.2.0 新增
urlProcess() private 主机 URL 处理,0.2.0 新增
resultProcess() private 结果处理
dataProcess() private 发送数据处理
httpHeaderProcess() private 头信息处理
genFilename() private 生成文件名
verifyFile() private 验证是否为允许的文件

$config 配置,$configThis 默认配置

0.2.0 新增

public $config;
private $configThis;

结构

名称 类型 默认 描述
scheme string 协议
charset string UTF-8 编码
port int 端口
accept string application/json 请求返回的类型
curlopt_header bool false 是否将头文件的信息作为数据流输出
verify_peer bool false 验证对等证书
verify_host bool false 验证主机
return_transfer bool true 是否转换返回
timeout int 30 服务器超时

$fileInfo 默认 $_FILES 结构

public $fileInfo;

结构

名称 类型 默认 描述
name string 原始文件名
tmp_name string 临时文件名
ext string 扩展名
mime string MIME
size int 0 文件大小

instance() 实例化方法

public static function instance( [ array $config ] ) : object

参数

返回

  • 本类的实例

config() 配置

0.2.0 新增

public function config( array $config )

参数

返回


request() 发起请求

public function request( string $url [, array $data [, string $method = 'get' ]] ) : mixed

参数

  • url 请求 URL
  • data 准备发送的数据,可以为数组或字符串
  • method 请求方法,get 或 post

返回

  • 请求结果

getRemote() 发起远程请求并保存为临时文件

public function getRemote( string $url [, array $data [, string $method = 'get' ]] ) : array

参数

  • url 请求 URL
  • data 准备发送的数据,可以为数组或字符串
  • method 请求方法,get 或 post

返回

  • 临时文件信息

move() 把远程请求到的文件移动到指定目录

public function move( string $dir [, $name = true [, $replace = true ]] ) : bool

参数

  • dir 指定目录
  • name 文件名,true 为自动生成, false 为原始文件名, 字符串为指定文件名
  • replace 是否覆盖

返回

  • 布尔值

setHeader() 设置 HTTP 头

public function setHeader( mixed $header [, string $value ] )

参数

  • header HTTP 头,字符串或数组

    为字符串时表示名称,为数组时表示批量设置

  • value0.2.0 新增

    header 为字符串时为必须,当 header 为数组时自动忽略。

返回


setAccept() 设置请求返回的类型

public function setAccept( string $type )

参数

  • type 请求返回的类型

返回


contentType() 设置请求内容的类型

public function contentType( string $contentType [, string $charset ] )

参数

  • contentType 请求内容的类型
  • charset 字符编码

返回


port() 设置端口

public function port( [ int $port ] )

参数

  • port 端口

返回


getResult() 获取原始返回内容

public function getResult() : mixed

参数

返回

  • 原始返回内容

getError() 获取错误

private function getError() : string

参数

返回

  • 错误

getErrno() 获取错误号

private function getErrno() : int

参数

返回

  • 错误号

getStatusCode() 获取状态码

private function getStatusCode() : int

参数

返回

  • 状态码

getMime() 获取文件的 MIME 类型

public function getMime( string $path [, $mime = false ] ) : string

参数

  • path 路径
  • mime 手动报告类型

返回

  • MIME 类型

getExt() 获取文件的扩展名

public function getExt( string $path [, $mime = false ] ) : string

参数

  • path 路径
  • mime MIME 类型

返回

  • MIME 类型

getInfo() 获取文件信息

public function getInfo( [ string $name ] ) : mixed

参数

  • name 名称

    为空时返回所有信息

返回

  • 文件信息

setMime() 获取文件的扩展名

public function setMime( mixed $mime [, array $value ] )

参数

  • mime MIME 类型

    支持两种类型:为字符串时表示配置名,为数组时表示批量添加

  • value MIME 值数组

    mime 为字符串时为必须,当 mime 为数组时自动忽略

返回


rule() 获取文件的扩展名

public function rule( string $rule )

参数

  • rule 生成文件名规则(函数名)

返回


optProcess() cURL 选项处理

0.2.0 新增

private function optProcess( array $opts )

参数

  • opts 选项

返回

  • 属性节点

urlProcess() 主机 URL 处理

0.2.0 新增

private function urlProcess( string $url ) : bool

参数

  • url 请求 URL

返回

  • 布尔值

resultProcess() 结果处理

private function resultProcess( mixed $result ) : mixed

参数

  • result 结果

返回

  • 处理后的结果

dataProcess() 发送数据处理

private function dataProcess( mixed $data ) : string

参数

  • data 待发送的数据

返回

  • 处理后的数据字符串

httpHeaderProcess() 头信息处理

private function httpHeaderProcess() : array

参数

返回

  • HTTP 头信息数组

genFilename() 获取文件的扩展名

private function genFilename( [ bool $name = true ] ) : string

参数

  • name true 时按规则生成文件名,false 时使用原始文件名

返回

  • 文件名

verifyFile() 验证是否为允许的文件

private function verifyFile( string $ext [, string $mime ] ) : bool

参数

  • ext 扩展名
  • mime MIME

返回

  • 布尔值