Allows you to use Twig in Laravel.
- PHP >= 8.0
- Laravel >= 9.x
You can install the package via composer:
composer require dinhquochan/laravel-twigIf 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,lastauth,auth_check,auth_guest,auth_user,auth_guardconfig,config_get,config_hasdump,ddcan,cant,cannot,allows,denies*_path,mixrequest,request_has,request_exists,request_filled,request_input,request_query,request_is,current_url,current_full_url,current_full_url_with_query,oldsession,session_has,session_get,session_put,session_pull,session_forget,csrf_token,csrf_field,method_fieldstr_*(All theStr::*methods,snake_case,camel_case,studly_case,kebab_case)__,trans,trans_choiceaction,asset,url,route,secure_url,secure_asset
Filters:
*_path,mixstr_*(All theStr::*methods,snake_case,camel_case,studly_case,kebab_case)__,trans,trans_choiceaction,asset,url,route,secure_url,secure_asset
Global variables:
app: theIlluminate\Foundation\Application::classobject
composer testPlease 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.