palmiot/twig-extensions

为Twig提供一些有用的过滤器。

1.0.0 2020-10-27 19:39 UTC

This package is auto-updated.

Last update: 2024-09-28 03:58:32 UTC


README

为Twig提供一些有用的过滤器和函数。

安装

可以使用composer轻松安装扩展。

composer require palmiot/twig-extensions

用法

$twig = new Twig_Environment($loader, $options);
$twig->addExtension(new Palmiot\Twig\Base64Extension());
$twig->addExtension(new Palmiot\Twig\BasenameExtension());
$twig->addExtension(new Palmiot\Twig\MinifyExtension());
$twig->addExtension(new Palmiot\Twig\PackerExtension());
$twig->addExtension(new Palmiot\Twig\PathinfoExtension());
$twig->addExtension(new Palmiot\Twig\RemoteFileExtension());

在symfony项目中使用时,需要将扩展注册为服务

services:

  twig.extension.base64:
    class: Palmiot\Twig\Base64Extension
    tags:
      - { name: twig.extension }

  twig.extension.basename:
    class: Palmiot\Twig\BasenameExtension
    tags:
      - { name: twig.extension }

  twig.extension.minify:
    class: Palmiot\Twig\MinifyExtension
    tags:
      - { name: twig.extension }

  twig.extension.packer:
    class: Palmiot\Twig\PackerExtension
    tags:
      - { name: twig.extension }

  twig.extension.pathinfo:
    class: Palmiot\Twig\PathinfoExtension
    tags:
      - { name: twig.extension }

  twig.extension.remotefile:
    class: Palmiot\Twig\RemoteFileExtension
    tags:
      - { name: twig.extension }

Base64扩展

将Base64函数暴露给Twig,用于使用MIME base64编码和解码数据。

{{ "palmiot/twig-extensions"|base64_encode }}
{{ "cGFsbWlvdC90d2lnLWV4dGVuc2lvbnM="|base64_decode }}

Basename扩展

basename函数暴露给Twig,用于返回路径的最后一个组件。

{{ basename("/etc/sudoers.d") }}                <!-- sudoers.d -->
{{ basename("/etc/sudoers.d", '.d') }}          <!-- sudoers -->

Minify扩展

用于压缩从Twig压缩CSS(层叠样式表)和JS(JavaScript)。(使用MatthiasMullie\Minify进行压缩)

{{ minify('css', "-0px") }}                     <!-- 0 -->
{{ minify('js', "object['property']") }}        <!-- object.property -->

Packer扩展

用于从Twig打包JS(JavaScript)内容。(使用Tholu\Packer\Packer打包器)

{{ packer("alert('checking this');") }}         <!-- eval(function(p,a,c,k,e,d)... -->

Pathinfo扩展

pathinfo函数暴露给Twig,用于获取文件路径的信息。

{{ "/www/htdocs/inc/lib.inc.php"|pathinfo('PATHINFO_DIRNAME') }}        <!-- /www/htdocs/inc -->

{% set pathData = "/www/htdocs/inc/lib.inc.php"|pathinfo %}
{{ pathData.dirname }}                                                  <!-- /www/htdocs/inc -->

RemoteFile扩展

用于获取任何URL的内容,如果您愿意,可以将其保存为新文件。

{% set content = remote_content("https://...") %}                                               <!-- content of url inside the variable "content" -->
{% set localFileName = remote_file("https://...", "../templates", "test.html.twig") %}          <!-- the name of the new file saved with the content of the url into the directory `../templates` with name `test.html.twig` -->