themallen/mender

Mender 是一个 CSS/JS 压缩器和合并器。

dev-master 2014-07-28 22:05 UTC

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() 方法的接口。
  • 如果您使用基本文件客户端,则需要准备文件,以便将编译后的 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!我很友好。