htmlminn/htmlminn

HTMLMin 是一个简单的 Laravel HTML 压缩器

v11.0.0 2024-08-26 08:03 UTC

This package is auto-updated.

Last update: 2024-09-26 08:23:04 UTC


README

Laravel HTMLMin 目前由 Raza Mehdi 维护,是一个简单的 Laravel HTML 压缩器。它使用 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

此接口定义了压缩类必须实现的公共方法。此类必须仅提供一个'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)下授权的。