dinhquochan / laravel-twig
Laravel 框架的 Twig 模板
3.0.0
2023-02-14 02:57 UTC
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/console: ^9|^10
- illuminate/support: ^9|^10
- illuminate/view: ^9|^10
- twig/twig: ^3
Requires (Dev)
- laravel/framework: ^9|^10
- mockery/mockery: ^1.3.1
- phpunit/phpunit: ^8.4|^9.0
README
要求
- PHP >= 8.0
- Laravel >= 9.x
安装
您可以通过 composer 安装此软件包
composer require dinhquochan/laravel-twig
如果您不使用自动发现,请将 Service Provider 添加到 config/app.php 文件中的 providers 数组中
\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
class AppServiceProvider extends ServiceProvider { // 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)。请参阅许可证文件以获取更多信息。