允许在保留中间刷新功能的同时压缩输出数据。

v1.0.1 2017-01-26 15:00 UTC

This package is not auto-updated.

Last update: 2024-09-24 20:39:42 UTC


README

提供PPLib\ChunkedCompressedResponse类,该类允许压缩的块编码,允许在压缩的同时提前刷新内容。在每次中间刷新时,接收者仍然可以解码发送的数据并获取部分文档。使用现有的zlib过滤器是无法做到这一点的,因为默认的zlib.output_compression将整个网页缓冲起来,一次性输出所有内容。之前这个包使用自定义的C扩展来创建部分刷新的zlib流,但自从PHP 7以来,这可以通过标准的PHP实现。

这个包在我们运营的网站上使用:[PensieriParole](https://github.com/bithouseweb/pplib/blob/HEAD/www.pensieriparole.it),这是我们的主要网站,每天处理30万个页面。初步测试表明,通过使用这个解决方案,我们可以节省约10毫秒的TTFB,这主要取决于你能够提前刷新多少内容和可以推迟多少内容。

安装

使用composer要求这个包

composer require bithouseweb/pplib

在此阶段,你可以这样使用这个类

use PPLib\ChunkedCompressedResponse;

$resp = new ChunkedCompressedResponse();

// ... YOUR HEAD CODE ...

$resp->flush_chunk();

// ... YOUR CONTENT CODE ...

$resp->flush_chunk();

// ... YOUR FOOTER CODE ...

$resp->end_flush(); // optional

许可协议

MIT许可协议(MIT)

版权所有(c) 2017 bitHOUSEweb S.r.l.

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人提供上述权利,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、针对特定目的的适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任是基于合同、侵权或其他方式,是否因软件或其使用或其他方式而产生。