graham-campbell / 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
- illuminate/filesystem: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.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
- illuminate/routing: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.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
- illuminate/view: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0
- mrclay/minify: ^2.2
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
- v8.0.0
- v7.0.0
- v6.0.1
- v6.0.0
- v5.8.0
- v5.7.0
- v5.6.0
- dev-master / 5.0.x-dev
- v5.0.0
- v4.5.0
- v4.4.0
- v4.3.0
- v4.2.1
- v4.2.0
- v4.1.0
- v4.0.1
- v4.0.0
- v3.1.0
- v3.0.1
- v3.0.0
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.0
- v2.0.0-RC1
- v1.1.1
- v1.1.0
- v1.0.0
- v1.0.0-RC2
- v1.0.0-RC1
- v1.0.0-beta1
- v0.3.1-alpha
- v0.3.0-alpha
- v0.2.0-alpha
- v0.1.0-alpha
This package is not auto-updated.
Last update: 2022-02-01 12:30:24 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
中注册 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)。