simexis / laravel-liquid
Laravel 的 Liquid 模板引擎
0.10.10
2022-10-18 15:27 UTC
Requires
- php: >= 5.6
- laravel/framework: >=5.3
This package is auto-updated.
Last update: 2024-09-18 19:32:41 UTC
README
Liquid 是 Ruby 的 Liquid 模板引擎的 PHP 版本,由 Tobias Lutke 编写。尽管 PHP 有许多其他模板引擎,包括 Liquid 部分灵感来源于的 Smarty,但 Liquid 的一些优势使得移植变得有价值。
- 可读性高、易于人类阅读的语法,可在任何类型的文档中使用,而不仅仅是 HTML,无需转义。
- 快速、易于使用和维护。
- 100% 安全,没有嵌入 PHP 代码的可能性。
- 干净的 OO 设计,而不是其他模板引擎中常见的混合 OO 和过程式。
- 独立的编译和渲染阶段,以提高性能。
- 100% 与 Ruby 模板引擎的标记兼容性,使模板可用于任一平台。
- 单元测试:Liquid 已完全单元测试。库稳定,适用于大型项目。
为什么选择 Liquid?
为什么还需要另一个模板库?
Liquid 的编写是为了满足三个模板库需求:良好的性能、易于扩展和简单易用。
安装
您可以通过 composer 安装此库
composer require simexis/laravel-liquid
Laravel 5.5 使用包自动发现,因此无需手动添加 ServiceProvider
Laravel 5.5+
如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php 中的 providers 数组
Liquid\LiquidServiceProvider::class,
如果您想使用外观来编译
'Liquid' => Liquid\Facade::class,
php artisan vendor:publish --provider="Liquid\LiquidServiceProvider"
示例模板
{% if products %}
<ul id="products">
{% for product in products %}
<li>
<h2>{{ product.name }}</h2>
Only {{ product.price | price }}
{{ product.description | prettyprint | paragraph }}
{{ 'it rocks!' | paragraph }}
</li>
{% endfor %}
</ul>
{% endif %}
如何使用 Liquid
class HomeController extends Comtroller {
public function index()
{
$products = Products::all();
return view('home', [
'products' => $products
]);
}
}
有关更多示例,请参阅原始 Ruby 实现仓库的 wiki 页面。
要求
- PHP 5.3+
- laravel/framework 5.3+
问题
有 bug?请在 GitHub 上创建问题!