keepsuit / laravel-liquid
Liquid template engine for Laravel
Installs: 4 795
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 0
Open Issues: 1
pkg:composer/keepsuit/laravel-liquid
Requires
- php: ^8.1
- illuminate/contracts: ^10.0 || ^11.0 || ^12.0
- keepsuit/liquid: ^0.7 || ^0.8 || ^0.9
- spatie/laravel-package-tools: ^1.16
- symfony/var-exporter: ^6.3 || ^7.0
Requires (Dev)
- itsgoingd/clockwork: ^5.3
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- mockery/mockery: ^1.6
- nunomaduro/collision: ^7.8 || ^8.0 || ^9.0
- orchestra/testbench: ^8.14 || ^9.0 || ^10.0
- pestphp/pest: ^2.13 || ^3.0
- pestphp/pest-plugin-arch: ^2.5 || ^3.0
- pestphp/pest-plugin-laravel: ^2.2 || ^3.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^2.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2025-10-13 19:32:43 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/viewsfolder (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.