novay / htmlmin
HTMLMin 是 Laravel 5 的简单 HTML 压缩工具
Requires
- php: >=5.5.9
- illuminate/contracts: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/filesystem: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/http: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/routing: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/view: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- mrclay/minify: ^2.2|^3.0
Requires (Dev)
- graham-campbell/testbench: ^3.1|^4.0|^5.0
- mockery/mockery: ^0.9.4|^1.0
- phpunit/phpunit: ^4.8|^5.0|^6.0|^7.0|^8.0|^9.0
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。您可以自由查看变更日志、发布版本、许可证和贡献指南。
安装
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)。