定制 bitandblack/request-cache 二次开发

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

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

bitandblack/request-cache

最新稳定版本:1.8.0

Composer 安装命令:

composer require bitandblack/request-cache

包简介

Smooth caching of HTTP requested data. It runs non-blocking and uses background processes to request the data.

README 文档

README

PHP from Packagist Latest Stable Version Total Downloads License

Bit&Black Logo

Bit&Black Request Cache

Smooth caching of HTTP requested data. It runs non-blocking and uses background processes to request the data.

Installation

This library is available for the use with Composer. Add it to your project by running $ composer require bitandblack/request-cache.

Usage

At first initialize a cache type and a process object, and use them to initialize the request handler object. In this example we're going to use the FileSystemCache:

<?php

use BitAndBlack\RequestCache\CacheType\FileSystemCache;
use BitAndBlack\RequestCache\Process;
use BitAndBlack\RequestCache\RequestHandler;

$cache = new FileSystemCache(__DIR__);
$process = new Process();
$requestHandler = new RequestHandler($cache, $process);

The request handler is now ready to be used. Now create a request object with the URL you want to request and the time to live (ttl). This example requests the URL https://www.bitandblack.com and allows the data to be stored for 1 hour:

<?php

use BitAndBlack\RequestCache\Request;

$request = new Request(
    'https://www.bitandblack.com',
    3600
);

The data can be requested now:

<?php

$response = $requestHandler->getResponse($request);

The request handler will return the response immediately and without blocking the script. If the data has been expired, the last response will be returned from cache, while the new data will be requested in the background.

When successful, the response will be a GuzzleHttp\Psr7\Response object, that implements the Psr\Http\Message\ResponseInterface.

Options

Custom request client

Per default, this library uses Guzzle to make requests. You can use the request callback to set up a custom request client or to modify the configuration.

<?php

use GuzzleHttp\Client;
use Psr\Http\Message\ResponseInterface;

$cache->setRequestCallback(
    function (string $url): ResponseInterface 
    {
        $client = new Client();
        return $client->request(
            'GET',
            $url,
            [
                'allow_redirects' => false
            ]
        );
    }
);

TTL

The ttl value may be easier to set with the help of the bitandblack/duration library. For example instead of writing 86400 for the duration of a whole day, you can write Duration::createFromDays(1)->getSeconds() then.

Help

If you have any questions, feel free to contact us under hello@bitandblack.com.

Further information about Bit&Black can be found under www.bitandblack.com.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-02-18

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固