htmlminn / htmlminn
HTMLMin 是一个简单的 Laravel 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|^10.0|^11.0
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。您可以随时查看 变更日志、发行版、许可 和 贡献指南。
安装
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)下授权的。