gubler/twig-extensions

内部项目使用的Twig扩展

v1.1.0 2024-01-08 12:57 UTC

This package is auto-updated.

Last update: 2024-09-08 14:28:21 UTC


README

本项目为内部项目提供了几个Twig扩展。

安装

首选的安装方法是通过Composer。运行以下命令来安装包并将其添加到项目中的composer.json作为需求:

composer require gubler/twig-extensions

配置

$twig = new Twig_Environment($loader, $options);
$twig->addExtension(new Gubler\Twig\Extension\FileIconClassExtension());
$twig->addExtension(new Gubler\Twig\Extension\FlashMessagesExtension());
$twig->addExtension(new Gubler\Twig\Extension\InstanceOfExtension());
$twig->addExtension(new Gubler\Twig\Extension\TableSortIconExtension());

对于Symfony,在services.yaml中注册它

services:
    gubler.twig_extension.file_icon_class:
        class: Gubler\Twig\Extension\FileIconClassExtension
        tags: [twig.extension]
    gubler.twig_extension.flash_messages:
        class: Gubler\Twig\Extension\FlashMessagesExtension
        tags: [twig.extension]
    gubler.twig_extension.instance_of:
        class: Gubler\Twig\Extension\InstanceOfExtension
        tags: [twig.extension]
    gubler.twig_extension.table_sort_icon:
        class: Gubler\Twig\Extension\TableSortIconExtension
        tags: [twig.extension]

您还可以直接使用MimeTypeToIconClass库,并通过将其注册为服务将其注入到您的类中

services:
    Gubler\Twig\Extension\Lib\MimeTypeToIconClass: ~

扩展

FileIconClass

此扩展将MIME类型映射到FontAwesome文件图标。目前仅支持以下文件类型

  • Microsoft Word
  • Microsoft Excel
  • Microsoft PowerPoint
  • PDF

其他所有文件返回一个通用的文件图标。

{{ 'application/vnd.ms-excel'|fileIconClass }}

FlashMessages

此扩展将遍历给定会话的flashes并将它们转换为Bootstrap 5警报。

它查找successwarningerrornotice的flashes键。

创建flashes

# In a Symfony controller:
$this->addFlash('success', 'This is a SUCCESS message');
$this->addFlash('error', 'This is an ERROR message');
$this->addFlash('warning', 'This is a WARNING message');
$this->addFlash('notice', 'This is a NOTICE message');

渲染所有flashes

{{ flashMessages(app.session) }}

InstanceOf

此扩展提供PHP的instanceof类型操作符作为Twig测试。

{# date is \DateTime object #}
{{ date is instanceof("\\DateTime") ? 'ok' : 'bad' }}

TableSortIcon

此过滤器允许您传递列名、排序的列名和排序方向,并返回一个FontAwesome排序图标类。

<i class="{{ tableSortIcon('col1', 'col1', 'asc') }}"></i>

贡献

欢迎贡献!请阅读CONTRIBUTING以获取详细信息。

本项目遵守贡献者行为准则。通过参与此项目和其社区,您应遵守此准则。

版权和许可

gubler/twig-extensions库版权© Daryl Gubler,并授权在MIT许可(MIT)下使用。有关更多信息,请参阅LICENSE