首页 > 解决方案 > Symfony 5.1:在微内核中加载自己的 twig 扩展

问题描述

切换到 smyfony,我们遇到了一些基本的启动问题。我们正在将一个现有项目转移到 symfony。因此,例如。配置等必须在 php 中并且动态地存在 - 到目前为止没有问题。

但是:如何在微内核中加载自己的树枝功能(扩展)?

内核.php

protected function configureContainer(ContainerConfigurator $container) {

  $container->extension("twig", array(
            "paths" => array(__DIR__ . "/../resources/views"),
            "auto_reload" => true,
            "cache" => false,
        ));

}

Twig 工作正常,没有问题……直到我们需要自己的函数。

(TEST !) twig 函数:

namespace App\Kernel\TwigExtensions;

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

class TwigTest extends AbstractExtension {
    public function getFunctions() {
        return array(
            new TwigFunction("test", array($this, function() { return "ABC"; })),
        );
    }
}

在“configureContainer”中使用以下源无效:

$container->services()
                ->load("App\\Kernel\\TwigExtensions\\", sprintf("%s/Kernel/TwigExtensions/TwigTest.php", __DIR__))
                ->tag('twig.extension')

对我的下一步有什么想法吗?谢谢 !

标签: symfonytwig-extension

解决方案


推荐阅读