dyanakiev / litwig2020
Laravel 框架的 Twig 模板,由我定制
1.5
2020-09-25 19:47 UTC
Requires
- php: ^7.3
- ext-json: *
- illuminate/console: ^8
- illuminate/support: ^8
- illuminate/view: ^8
- twig/twig: ~3.0
README
需求
- PHP >= 7.2.0
- Laravel >= 6.x
安装
您可以通过 composer 安装此包
composer require dinhquochan/laravel-twig
如果您不使用自动发现,请在 config/app.php 中的 providers 数组中添加 Service Provider
\DinhQuocHan\Twig\TwigServiceProvider::class,
如果您想使用外观扩展 twig 扩展,请将以下内容添加到 app.php 中的外观
'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
,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_*
(所有Str::*
方法,snake_case
,camel_case
,studly_case
,kebab_case
)__
,trans
,trans_choice
action
,asset
,url
,route
,secure_url
,secure_asset
过滤器
*_path
,mix
str_*
(所有Str::*
方法,snake_case
,camel_case
,studly_case
,kebab_case
)__
,trans
,trans_choice
action
,asset
,url
,route
,secure_url
,secure_asset
全局变量
app
:`Illuminate\Foundation\Application::class` 对象
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件contact@dinhquochan.com联系,而不是使用问题跟踪器。
致谢
许可协议
MIT许可协议(MIT)。有关更多信息,请参阅许可文件。