3
をTwig_Extentionを使用することはできませんmyWidget.html.twig
には、次のものがあります。は、私は、次のコントローラをレンダリング私のテンプレートのコントローラ
{% for key,url in urls %}
<img src="{{ censor(url) }}" />
{% endfor %}
とcensor
です以下の小枝プラグインを介して定義:
namespace AppBundle\Twig;
class SanitizeArticlePhotosForList extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('censor', array($this, 'sensorAction')),
);
}
public function sensorAction($photoHtmlTag)
{
return str_replace(['tentacle','harem'],'censored',$photoHtmlTag);
}
}
しかし、私は、次のTwig_Error_Syntax
のエラーを取得:
Unknown "censor" function.
は、あなたの仲間はなぜ知っていますか?私のservices.php上に私はこれらの設定を持っています:
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;
// To use as default template
$definition = new Definition();
$definition
->setAutowired(true)
->setAutoconfigured(true)
->setPublic(false);
$this->registerClasses($definition, 'AppBundle\\', '../../src/AppBundle/*', '../../src/AppBundle/{Entity,Repository,Resources,Tests}');
// Changes default config
$definition->setPublic(true)->addTag('controller.service_arguments');
// $this is a reference to the current loader
//Loafing Controllers
$this->registerClasses($definition, 'AppBundle\\Controller\\', '../../src/AppBundle/Controller/*');
$this->registerClasses($definition, 'AppBundle\\Twig\\', '../../src/AppBundle/Twig/*');
あなたはどんな考えがありますか?
のようなあなたの拡張機能を呼び出してみてください:あなたの拡張は、フィルタではなく関数を定義します。これらは、小枝では別のものです。 – Joe