gubler / twig-extensions
内部项目使用的Twig扩展
v1.1.0
2024-01-08 12:57 UTC
Requires
- php: ^8.1
- symfony/http-foundation: ^6.0 || ^7.0
- twig/twig: ^3.0
Requires (Dev)
- symfony/phpunit-bridge: ^6.0 || ^7.0
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
其他所有文件返回一个通用的文件图标。
{{ 'application/vnd.ms-excel'|fileIconClass }}
FlashMessages
此扩展将遍历给定会话的flashes并将它们转换为Bootstrap 5警报。
它查找success
、warning
、error
和notice
的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。