cryental / dinhquochan-laravel-twig
Laravel 框架的 Twig 模板
1.3.3
2021-01-08 09:55 UTC
Requires
- php: ^7.3|^8.0
- illuminate/console: ^6|^7|^8
- illuminate/support: ^6|^7|^8
- illuminate/view: ^6|^7|^8
- twig/twig: ~3.0
Requires (Dev)
- laravel/framework: ^6|^7|^8
- mockery/mockery: ^1.3.1
- phpunit/phpunit: ^8.4|^9.0
README
要求
- PHP >= 7.3.0
- Laravel >= 6.x
安装
您可以通过 composer 安装此包
composer require dinhquochan/laravel-twig
如果您不使用自动发现,请将 Service Provider 添加到 config/app.php 中的 providers 数组
\DinhQuocHan\Twig\TwigServiceProvider::class,
如果您想使用 facade 扩展 twig 扩展,请将以下内容添加到 app.php 中的 facades
'Twig' => \DinhQuocHan\Twig\Facades\Twig::class,
因此,我们将使用 Artisan 添加新的 twig 配置文件
php artisan vendor:publish --provider="DinhQuocHan\Twig\TwigServiceProvider"
用法
您调用 Twig 模板的方式就像调用任何其他视图一样
// 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);
有关模板设计师的更多信息,请参阅 Twig for Template Designers 或 Laravel Views。
扩展 Twig
Laravel Twig 允许您定义自己的自定义过滤器、函数、全局变量、令牌解析器或扩展。
以下示例创建了一个 {{ product.price|money_format }} 过滤器,该过滤器格式化给定的 $product->price
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use DinhQuocHan\Twig\Facades\Twig; class AppServiceProvider extends ServiceProvider { /** * Register bindings in the container. * * @return void */ public function register() { // } /** * Bootstrap any application services. * * @return void */ public function boot() { Twig::addFilter(new TwigFilter('money_format', function ($price) { return sprintf('%d %s', number_format($price), 'US$'); })); } }
可用方法
Twig::addGlobal(string $name, $value)创建一个全局变量Twig::addFilter(\Twig\TwigFilter $filter)创建一个过滤器Twig::addFunction(\Twig\TwigFunction $function)创建一个函数Twig::addTest(\Twig\TwigTest $test)创建一个测试Twig::addTokenParser(\Twig\TokenParser\TokenParserInterface $parser)创建一个令牌解析器Twig::addExtension(\Twig\Extension\ExtensionInterface $extension)创建一个扩展
有关更多信息,请参阅 Twig for Template Designers。
内置 Laravel 扩展
\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
函数
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_*(所有Str::*方法,snake_case,camel_case,studly_case,kebab_case)__,trans,trans_choiceaction,asset,url,route,secure_url,secure_asset
过滤器
*_path,mixstr_*(所有Str::*方法,snake_case,camel_case,studly_case,kebab_case)__,trans,trans_choiceaction,asset,url,route,secure_url,secure_asset
全局变量
app:`Illuminate\Foundation\Application::class` 对象
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
请参阅CONTRIBUTING获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件contact@dinhquochan.com联系,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅许可文件。