simexis/laravel-liquid

Laravel 的 Liquid 模板引擎

0.10.10 2022-10-18 15:27 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 页面

要求

问题

有 bug?请在 GitHub 上创建问题!

https://github.com/jooorooo/laravel-liquid/issues