keepsuit / laravel-liquid
Liquid template engine for Laravel
Requires
- php: ^8.1
- illuminate/contracts: ^10.0 || ^11.0
- keepsuit/liquid: ^0.6.2
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.8
- laravel/pint: ^1.0
- mockery/mockery: ^1.6
- nunomaduro/collision: ^7.8 || ^8.0
- orchestra/testbench: ^8.14 || ^9.0
- pestphp/pest: ^2.13
- pestphp/pest-plugin-arch: ^2.5
- pestphp/pest-plugin-laravel: ^2.2
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-11-08 19:23:48 UTC
README
This is a Laravel view integration of the Shopify Liquid template engine. It uses keepsuit/liquid PHP porting under the hood to parse liquid templates.
Installation
You can install the package via composer:
composer require keepsuit/laravel-liquid
Usage
- Create a liquid template file in
resources/views
folder (for examplehome.liquid
). - Render the template as usual with Laravel view engine.
class HomeController extends Controller { public function index() { return view('home'); } }
Tags
This package provides some custom tags in addition to the standard Liquid tags.
Auth
Check if the user is authenticated.
Same as laravel @auth
directive.
{% auth %} user is authenticated {% endauth %} {% guest %} user is not authenticated {% endguest %}
or with custom guard
{% auth('admin') %} admin is authenticated {% endauth %} {% guest 'admin' %} admin is not authenticated {% endguest %}
Env
Check if the application environment is the specified one.
Same as laravel @env
directive.
{% env 'production' %} application is in production environment {% endenv %}
Session
Check if the session has a specific key.
Same as laravel @session
directive.
The value of the session key can be accessed with the value
variable.
{% session 'status' %} <div class="p-4 bg-green-100"> {{ value }} </div> {% endsession %}
Error
Check if a validation error exists for the given field.
Same as laravel @error
directive.
The error message can be accessed with the message
variable.
{% error 'email' %} <div class="text-red-500 text-sm"> {{ message }} </div> {% enderror %}
Csrf field
Generate a hidden CSRF token form field.
Same as laravel @csrf
directive.
<form method="POST" action="/foo"> {% csrf %} ... </form>
Vite
Adds your vite assets to the template.
Same as laravel @vite
directive.
{% vite 'resources/css/app.css', 'resources/js/app.js' %} {% comment %}With custom build directory{% endcomment %} {% vite "resources/js/app.js", directory: "custom" %}
Filters
This package provides some custom filters in addition to the standard Liquid filters.
Debug
Debug variable content with dump
and dd
filters.
{{ variable | dump }} {{ variable | dd }}
Localization
Translate a string with trans
(or t
alias) and trans_choice
filters using the Laravel localization system.
{{ 'messages.welcome' | trans }} {{ 'messages.items_count' | trans_choice: 3 }}
Url
Generate urls using the laravel url helpers.
{{ 'app.js' | asset }} {{ 'app.js' | secure_asset }} {{ '/home' | url }} {{ '/home' | secure_url }} {{ 'home' | route }}
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.