themallen / mender
Mender 是一个 CSS/JS 压缩器和合并器。
Requires
- php: >=5.3.0
- meenie/javascript-packer: dev-master
- natxet/cssmin: dev-master
- tedivm/jshrink: ~1.0
- themallen/mile: dev-master
This package is not auto-updated.
Last update: 2020-01-06 03:17:37 UTC
README
###Mender
Mender 是一个类,它执行一个简单但非常实用的任务:将您的 CSS / JavaScript 合并成一个文件(一个用于 CSS,一个用于 JavaScript),然后即时最小化这些文件。通过减少 HTTP 请求的数量,它使您的网站加载速度更快。它还减少了服务器负载和流量。Mender 使用纯 PHP 编写,甚至可以在非常受限的共享主机上使用。它不需要任何其他技术,如 Java 或 Python。
我将 Bender 分支出来,使其与 Composer 兼容,并对这个想法进行了通用改进。
原始项目描述、说明和更新:http://www.esiteq.com/projects/mender/
Mender 需要 php 5.3 以支持命名空间和其他功能。如果您需要适用于旧版本的版本,请查看原始的 Bender。
变更日志
2014 年 7 月 28 日星期一
- 重构代码以利用
fileClient
,包括一个包装全局函数的基本版本。- 这使您可以使用 Mile 或任何其他库,只要它提供了一个具有
put()
和get()
方法的接口。
- 这使您可以使用 Mile 或任何其他库,只要它提供了一个具有
- 如果您使用基本文件客户端,则需要准备文件,以便将编译后的 JS 和 CSS 写入其中。
2014 年 7 月 25 日星期五
- 进行了重大的重构,使其成为合适的 composer 包。
- 删除了一些地方难看的代码。
- 重新构建了依赖关系。
- 增加了支持将配置数组传递给构造函数的功能。
2013 年 11 月 1 日星期五
- 更改了检查是否需要重新组合/最小化的方式。现在只有在原始文件之一更改时,才会重新组合/最小化 CSS 和 JavaScript 文件,而不是根据生存时间强制编译所有脚本。
使用方法
require_once "../vendor/autoload.php";
$mender = new Mender(array(
'path' => '',
));
$mender->enqueue( "assets/css/bootstrap.css" );
$mender->enqueue( "assets/css/bootstrap-theme.css" );
$mender->enqueue( "assets/js/jquery-1.10.2.js" );
$mender->enqueue( "assets/js/bootstrap.js" );
echo $mender->output( "cache/stylesheet.css" );
要查看一个工作示例,只需导航到测试文件夹并运行 php -S localhost:8000
,打开网络浏览器,并导航到 localhost:8000
。您应该在浏览器调试工具中能够查看压缩源代码等。
配置
在实例化 Mender 实例时,传入一个配置数组。此数组可以包含以下键
- ttl:编译后的 css/js 的生存时间(以秒为单位)。-1 表示永不重新编译,0 表示始终重新编译。
- jsmin:用于最小化 JS 的模块名称。
- cssmin:用于最小化 CSS 的模块名称。
- path:从服务器根目录到您的应用程序的路径。
- fileClient:符合文件客户端接口的对象实例。
未来的版本可能会显著更改此配置数组!例如,我目前正在考虑用类似 fileClient 的接口的实例替换 jsmin 和 cssmin。或者,我可能转向更功能性的风格,并将 cssmin、jsmin 和 fileClient 都替换为函数参数。
贡献
如果您有酷炫的想法或只是想提供一些反馈,请创建一个 issue!我很友好。