Я следовал примеру из документов Symfony 3.4 чтобы загрузить расширение Twig во время выполнения, но оно не загружается: что я делаю неправильно?
В: src/PlotlyBundle/Twig/AppRuntime.php
<?php
namespace PlotlyBundle\Twig;
class AppRuntime
{
public function __construct()
{
}
public function biDraw()
{
return 'awesome text here';
}
}
В: src/PlotlyBundle/Resources/config/services.yml
services:
plotly.twig_runtime:
class: PlotlyBundle\Twig\AppRuntime
public: true
tags:
- { name: twig.runtime }
IN: src/PlotlyBundle/Twig/AppExtension.php
<?php
namespace PlotlyBundle\Twig;
use PlotlyBundle\Twig\AppRuntime;
class AppExtension extends \Twig_Extension
{
public function getFunctions()
{
return [
new \Twig_SimpleFunction(
'bi_draw',
array(AppRuntime::class, 'biDraw')
),
];
}
}
IN: src/AppBundle/Controller/DashboardController.php
$twig = $this->get('plotly.twig_runtime');
return $this->render(
'dashboard/index.html.twig'
);
В: app/Resources/views/dashboard/index.html.twig
{{ bi_draw() }}
class: PlotlyBundle\Twig\AppExtension
? - person Federkun   schedule 27.05.2018twig.extension
- person Federkun   schedule 27.05.2018twig.runtime
предназначен для ленивой загрузки. Вы можете сохранить его. Проблема заключалась в том, что вы вообще не зарегистрировали расширение ветки. - person Federkun   schedule 27.05.2018$twig = $this->get('plotly.twig_runtime');
. В этот момент вы создали объектAppRuntime
. Я предполагаю, что sy doc просто предполагает, что у вас включена опцияautoconfigure
. - person Federkun   schedule 27.05.2018