定制 php-extended/php-http-client-zip 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

php-extended/php-http-client-zip

最新稳定版本:8.0.10

Composer 安装命令:

composer require php-extended/php-http-client-zip

包简介

A psr-18 compliant middleware client that handles zip compression and decompression

README 文档

README

A psr-18 compliant middleware client that handles zip compression and decompression.

coverage build status

Installation

The installation of this library is made via composer and the autoloading of all classes of this library is made through their autoloader.

  • Download composer.phar from their website.
  • Then run the following command to install this library as dependency :
  • php composer.phar php-extended/php-http-client-zip ^8

Basic Usage

This library is to make a man in the middle for http requests and responses and logs the events when requests passes. It may be used the following way :


/* @var $client Psr\Http\Message\ClientInterface */ // psr-18
/* @var $request Psr\Http\Message\RequestInterface */  // psr-7

$client = new ZipClient($client);
$response = $client->sendRequest($request);

/* @var $response Psr\Http\Message\ResponseInterface */

This library handles the adding of Accept-Header on the requests and the decoding according to the Content-Encoding header on the responses.

This library is also able to unzip received zip-like files. For it to work :

  • First the request must contain an X-Php-Download-File header pointing to a valid file path. If a file already exists in this location, it will be overwritten.
  • Second, the http client must support the X-Php-Download-File header to write the downloaded file at that location and make a StreamInterface from that file.

If the response that is given to the X-Php-Download-File is a zip compatible file, it will be uncompressed to the same directory as the current file is but with a made-up name. All files into the tarball or equivalent will be concatenated to this location.

This client will set the X-Php-Uncompressed-File header with the location of the newly uncompressed file, and will replace the existing StreamInterface pointing to the downloaded file with a new one pointing to the uncompressed file.

The downloaded file will not be deleted, it is the job of the calling library to delete both the downloaded file and the uncompressed file once work has been done.


$client = new ZipClient($client);
$request = $request->withAddedHeader('X-Php-Download-File' => '/tmp/file.gz');
$response = $client->sendRequest($response);
$stream = $response->getBody();

/** @var $stream \Psr\Http\Message\StreamInterface */
// the stream points to the /tmp/{$sha1} file that is unzipped
// the exact location of the file can be uncovered with :
$filePath = $response->getHeader('X-Php-Uncompressed-File');

License

MIT (See license file).

统计信息

  • 总下载量: 7.48k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-03-21