JoseGonzalez / cakephp-gzip
自动gzip HTML输出的cakephp组件插件
Requires
This package is not auto-updated.
Last update: 2022-02-01 12:30:53 UTC
README
gzip组件
使用gzip组件插件轻松gzip生产应用的HTML输出
背景
我试图根据YSlow的建议优化一些小站点,在debuggable.com上看到了一些代码,提到了gzip html输出。所以我将其封装成AppController中的一个方法,并在生产中使用。
对这个方法每次都要复制粘贴感到不满意,我将其重构为一个组件(哇,蛋糕PHP组件!),现在我又将其重构为一个插件。这是一次大量的重构。
此插件仅适用于HTML,因此YMMV。
安装
[使用Composer]
将插件添加到项目的composer.json
文件中 - 例如:
{
"require": {
"josegonzalez/cakephp-gzip": "dev-master"
}
}
由于此插件在其自己的composer.json
中设置了类型cakephp-plugin
,因此Composer知道将其安装到您的/Plugins
目录中,而不是常规的vendors文件中。建议您将/Plugins/Upload
添加到您的.gitignore文件中。(为什么?阅读此内容。)
[手动]
- 下载此内容:https://github.com/josegonzalez/cakephp-gzip/zipball/master
- 解压下载内容。
- 将生成的文件夹复制到
app/Plugin
- 将您刚刚复制的文件夹重命名为
Gzip
[GIT Submodule]
在您的应用目录中键入:
git submodule add git://github.com/josegonzalez/cakephp-gzip.git Plugin/Gzip
git submodule init
git submodule update
[GIT Clone]
在您的插件目录中键入:
git clone git://github.com/josegonzalez/cakephp-gzip.git Gzip
启用插件
在2.0版本中,您需要在app/Config/bootstrap.php
文件中启用插件
CakePlugin::load('Gzip');
如果您已经使用CakePlugin::loadAll();
,则此步骤不是必需的。
用法
在控制器中包含组件(AppController或其他)
<?php App::uses('Controller', 'Controller'); class AppController extends Controller { public $components = array('Gzip.Gzip'); } ?>
此时,理论上一切应该都可以正常工作。
注意
由于CakePHP的输出缓冲方式,此功能仅在调试小于2时才有效。
待办事项
- gzip不仅仅是HTML
- 其他可配置的压缩方法
- 通过URL参数或秘密URL禁用压缩
许可证
版权所有(c)2010 Jose Diaz-Gonzalez
特此授予任何获得本软件及其相关文档文件(以下简称“软件”)副本的人免费使用该软件的权利,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人这样做,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“现状”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他原因,无论这些责任是否与软件或其使用或其他方式有关。