Allows you to use Twig in Laravel.
- PHP >= 8.0
- Laravel >= 9.x
You can install the package via composer:
composer require dinhquochan/laravel-twig
If you don't use auto-discovery, add the Service Provider to the providers array in config/app.php
\DinhQuocHan\Twig\TwigServiceProvider::class,
If you want to use the facade to extended twig extensions, add this to your facades in app.php:
'Twig' => \DinhQuocHan\Twig\Facades\Twig::class,
So, we will use Artisan to add the new twig config file:
php artisan vendor:publish --provider="DinhQuocHan\Twig\TwigServiceProvider"
You call the Twig template like you would any other view:
// Normal (template.html.twig or template.css.twig or template.twig)
return view('template', ['some_variable' => 'some_values']);
// With vender namespace
return view('vendor_namespace::template', $data);
Read more in Twig for Template Designers or Laravel Views.
Laravel Twig allows you to define your own custom filters, functions, globals, token parsers or extensions.
The following example creates a {{ product.price|money_format }}
filter which formats a given $product->price
:
class AppServiceProvider extends ServiceProvider
{
//
public function boot()
{
Twig::addFilter(new TwigFilter('money_format', function ($price) {
return sprintf('%d %s', number_format($price), 'US$');
}));
}
}
Available methods:
Twig::addGlobal(string $name, $value)
Creating a globalTwig::addFilter(\Twig\TwigFilter $filter)
Creating a filterTwig::addFunction(\Twig\TwigFunction $function)
Creating a functionTwig::addTest(\Twig\TwigTest $test)
Creating a testTwig::addTokenParser(\Twig\TokenParser\TokenParserInterface $parser)
Creating a token parserTwig::addExtension(\Twig\Extension\ExtensionInterface $extension)
Creating a extension
Read more in Twig for Template Designers.
\DinhQuocHan\Twig\Extensions\Arr::class
\DinhQuocHan\Twig\Extensions\Auth::class
\DinhQuocHan\Twig\Extensions\Config::class
\DinhQuocHan\Twig\Extensions\Dump::class
\DinhQuocHan\Twig\Extensions\Gate::class
\DinhQuocHan\Twig\Extensions\Path::class
\DinhQuocHan\Twig\Extensions\Request::class
\DinhQuocHan\Twig\Extensions\Session::class
\DinhQuocHan\Twig\Extensions\Str::class
\DinhQuocHan\Twig\Extensions\Translator::class
\DinhQuocHan\Twig\Extensions\Url::class
Functions:
array_*
,data_*
,head
,last
auth
,auth_check
,auth_guest
,auth_user
,auth_guard
config
,config_get
,config_has
dump
,dd
can
,cant
,cannot
,allows
,denies
*_path
,mix
request
,request_has
,request_exists
,request_filled
,request_input
,request_query
,request_is
,current_url
,current_full_url
,current_full_url_with_query
,old
session
,session_has
,session_get
,session_put
,session_pull
,session_forget
,csrf_token
,csrf_field
,method_field
str_*
(All theStr::*
methods,snake_case
,camel_case
,studly_case
,kebab_case
)__
,trans
,trans_choice
action
,asset
,url
,route
,secure_url
,secure_asset
Filters:
*_path
,mix
str_*
(All theStr::*
methods,snake_case
,camel_case
,studly_case
,kebab_case
)__
,trans
,trans_choice
action
,asset
,url
,route
,secure_url
,secure_asset
Global variables:
app
: theIlluminate\Foundation\Application::class
object
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email contact@dinhquochan.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.