sankalp_sans / slim-goes-slimmer
用于最小化 PHP 中 Slim 框架的 HTML 输出
v0.4
2024-03-18 14:43 UTC
Requires
- php: >=5.3
- slim/slim: >=2.5.0
This package is not auto-updated.
Last update: 2024-09-21 09:25:20 UTC
README
发布于 2015.11.27,更新于 2024.03.18(移除 HTML 注释)
嵌入 JS 或复杂分部层次结构的 HTML 页面使用缩进来提高可读性和良好的开发者体验。这导致网站源代码看起来像这样
<html>
<body>
<div>
<div>
<span>
<ul>
<li>un
<a>
Some content here
</a>
</li>
<li>
<a>
Some other here
</a>
</li>
<li>
<a>
Still another content here
</a>
</li>
</ul>
</span>
</div>
</div>
<script>
function someAwesomeFunction() {
// This function does something
for() {
if() {
// Some code here
} else {
// Some more code here
}
}
}
</script>
</body>
</html>
我在几个流行的媒体网站上进行了初步基准测试,发现我们浪费了 20% 到 30% 的 HTML 带宽在缩进 HTML 和 JavaScript 上。因此,我决定解决这个问题,并首先在 Slim 框架中实施,因为这正是我现在正在使用的框架。
到目前为止,slim-goes-slimmer 将上述 HTML 削减为
<html>
<body>
<div>
<div>
<span>
<ul>
<li>
<a>
Some content here
</a>
</li>
<li>
<a>
Some other here
</a>
</li>
<li>
<a>
Still another content here
</a>
</li>
</ul>
</span>
</div>
</div>
<script>
function someAwesomeFunction() {
// This function does something
for() {
if() {
// Some code here
} else {
// Some more code here
}
}
}
</script>
</body>
</html>
... 因此从每一行的开头删除了空格
为什么我没有进一步“优化”它?
主要是因为我在 HTML 中遇到 base64 编码图像的奇怪问题
使用
- 只需使用
composer require sankalp_sans/slim-goes-slimmer
或将文件SlimGoesSlimmer.php
复制到相关路径并包含它。 - 使用以下方法将其注册到 Slim 应用对象中
$app = new \Slim\Slim(...));
$app->add(new \Slim\Middleware\SlimGoesSlimmer());
灵感
这个项目是受我之前贡献的一个项目启发的 https://github.com/christianklisch/slim-minify。我原本打算进一步贡献,但由于 slim-goes-slimmer 专门针对我的一组问题,我将在我的 PHP 项目中根据需要对其进行调整。
目前的结果
令人鼓舞。根据 100 页的样本,我已经观察到页面大小减少了约 25%,这些页面的列表我很快就会发布。
贡献
贡献非常简单。Fork,代码,推送并发起拉取请求。如果您能贡献测试用例,我会很高兴,因为我通常很糟糕,无法编写它们。