novay/htmlmin

HTMLMin 是 Laravel 5 的简单 HTML 压缩工具

维护者

详细信息

github.com/novay/htmlmin

源代码

1.0.0 2024-06-19 13:59 UTC

This package is auto-updated.

Last update: 2024-09-19 14:28:40 UTC


README

Laravel HTMLMin 目前由 Raza Mehdi 维护,是一个简单的 HTML 压缩工具,用于 Laravel。它使用 Mr Clay 的 Minify 包来压缩整个响应,但也可以在编译时压缩 blade。您可以自由查看变更日志发布版本许可证贡献指南

Tests Software License Latest Version

安装

Laravel HTMLMin 需要 PHP 5.5+。这个版本支持 Laravel 5.1-5.8、6.x、7.x 和 8.x。

要获取最新版本,只需使用 Composer 引入项目

$ composer require htmlmin/htmlmin

安装后,请在您的 config/app.php 中注册服务提供者

'providers' => [
    HTMLMin\HTMLMin\HTMLMinServiceProvider::class
]

如果需要,提供了一个门面来别名

'aliases' => [
    'HTMLMin' => HTMLMin\HTMLMin\Facades\HTMLMin::class
]

配置

Laravel HTMLMin 支持可选配置。

要开始,您需要发布所有供应商资产

$ php artisan vendor:publish

这将在您的应用程序中创建一个 config/htmlmin.php 文件,您可以修改它来设置配置。同时,请确保检查此包中原始配置文件在发布之间的更改。

有三个配置选项

自动 Blade 优化

此选项('blade')允许在编译 blade 视图时对其进行压缩。由于优化只应用一次并缓存,这些优化对 PHP 处理时间的影响很小。默认情况下,此包不会执行任何操作,以允许在没有自动压缩页面的情况下使用。此设置的默认值为 false

强制 Blade 优化

此选项('force')强制在可能危险的视图中进行 blade 压缩。只有当您完全了解这可能导致的潜在问题时才应使用此设置。显然,此设置取决于 blade 压缩是否实际上已启用。此设置的默认值为 false

忽略 Blade 文件

此选项('ignore')允许您指定不希望压缩的路径。为此设置提供了一个合理的默认值。

用法

HTMLMin

这是最感兴趣的类。它绑定到 ioc 容器中的 'htmlmin',可以通过 Facades\HTMLMin 门面访问。有四个感兴趣的公共方法。

'blade' 方法将解析一个字符串为 blade 并尽可能快速地进行压缩。当启用 blade 压缩时,编译器类使用此方法。

'css''js' 方法将解析一个字符串为 css/js,并使用 Mr Clay 的 Minify 包进行压缩。

'html' 方法将解析一个字符串为 html,并尽可能好地使用 Mr Clay 的 Minify 包进行压缩。它还可以压缩内联 css 和 js。这是由压缩中间件使用的压缩方法。

Facades\HTMLMin

此门面将动态地将静态方法调用传递到ioc容器中的'htmlmin'对象,默认情况下是HTMLMin类。

Minifiers\MinifierInterface

该接口定义了minifier类必须实现的公共方法。此类只能提供一个'render'方法,该方法接收一个字符串参数,并应返回一个字符串。本包包含此接口的4个实现,但这些类不打算供公共使用,因此在此处未进行文档说明。您可以在这里查看源代码。

Http\Middleware\MinifyMiddleware

您可以将HTMLMin\HTMLMin\Http\Middleware\MinifyMiddleware中间件放在路由前面以实时压缩它们。请注意,此中间件允许您实现最大效果,但代价是性能损失,因为它在每个请求上运行,而不是像内置的blade压缩那样只运行一次。如果您需要,可以查看此中间件的源代码,阅读测试,或查看Laravel的文档

跳过压缩

除了可以使用('ignore')配置来跳过文件夹外,还有一些情况下您可能需要“跳过”单个文件。

只需在每个您想要跳过的文件中添加以下注释

<!-- skip.minification -->

请注意,如果您在配置中使用('force')选项,则它将不起作用。

HTMLMinServiceProvider

此类不包含任何感兴趣的公共方法。应将此类添加到config/app.php中的提供者数组。此类将设置ioc绑定并基于配置注册自动blade压缩。

更多信息

本包中还有一些未在此处文档说明的类(例如编译器类)。这是因为它们不打算供公共使用,而是由本包内部使用。

请注意清除视图缓存以查看更改。

php artisan view:clear

安全

如果您在此包中发现安全漏洞,请将电子邮件发送到Raza Mehdi的邮箱srmk@outlook.com。所有安全漏洞都将得到及时处理。

许可

Laravel HTMLMin遵循MIT许可(MIT)