У меня проблема с symfony2 на данный момент, и я не знаю, как я могу ее решить. Я хочу, чтобы в явном явном новом расширении twig я хотел бы вызвать контроллер или или представление (файл twig).
Как правильно это реализовать? Вы можете мне помочь? Я читал много интернет-страниц symfony2, но я не нашел для меня хорошего подхода к программированию.
Для лучшего понимания, почему я хочу сделать что-то вроде этого, вот пример: что такое моя идея: я хочу указать какой-то HTML-код в отдельное представление. Это новое представление встроено в другое представление, вызывая расширение ветки.
Итак, как я могу это понять?
Спасибо за помощь.
Когда вы используете Symfony2, вы можете templating
службу templating
к расширению Twig, а затем вызвать метод ->render
.
The extension
<?php
namespace YourPackage\YourBundle\Twig\Extension;
use Symfony\Component\Templating\EngineInterface;
class Test_Extension extends \Twig_Extension
{
protected $templating;
public function __construct(EngineInterface $templating)
{
$this->templating = $templating;
}
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('my_test', array($this->myTest()), array('is_safe' => array('html')))
);
}
public function myTest()
{
// do some stuffs
$data = $this->templating->render("SomeBundle:Directory:file.html.twig");
// ...
return $data;
}
public function getName()
{
return 'test';
}
}
services.yml
# src/YourPackage/YourBUndle/Resources/config/services.yml
services:
test.test_extension:
class: YourPackage\YourBundle\Twig\Extension\TestExtension
arguments: ['@templating']
tags:
- { name: twig.extension }