2023-03-17

定义服务  

备:创建服务和方法还可以使用: drush gen service:twig-extension

services:
  test_code.twig_extension:
    class: Drupal\test_code\TestCodeTwigExtension
    tags:
      - { name: twig.extension }

定义方法

<?php

namespace Drupal\test_code;

use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;

/**
 * Twig extension.
 */
class TestCodeTwigExtension extends AbstractExtension {

  /**
   * {@inheritdoc}
   */
  public function getFunctions() {
    return [
      new TwigFunction('foo', [$this, 'fooReturn']),
    ];
    // 或者.
    return [
      new TwigFunction('foo', function() {
        return 'xiukun foo'
      })
    ];
  }

  public function fooReturn() {
    return 'xiukun foo';
  }
}

测试方法

可以在任意template.twig.html或者views中使用

custom twig func

 

custom twig func output

标签: Twig Drupal9