dinhquochan/laravel-twig

Laravel 框架的 Twig 模板

3.0.0 2023-02-14 02:57 UTC

This package is auto-updated.

Last update: 2024-08-29 08:14:04 UTC


README

Latest Version on Packagist tests Total Downloads

允许您在 Twig 中使用 Laravel

要求

  • 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 DesignersLaravel 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)。请参阅许可证文件以获取更多信息。