此包已被废弃,不再维护。未建议替代包。

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

v8.0.0 2020-09-08 07:03 UTC

README

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

Build Status 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 中注册 HTMLMin\HTMLMin\HTMLMinServiceProvider 服务提供者,并且可以选择性地为我们的外观命名别名

        '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。这是minification中间件使用的方法。

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)