Это прекрасно работает как обычный контроллер:Продлить Symfony2 контроллер
namespace BundleName\Bundle\SiteBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function indexAction()
{
return $this->render('MyBundle:Default:index.html.twig', array("abc" => "test"));
}
}
... так что, безусловно, делая это он должен просто расширить контроллер:
namespace BundleName\Bundle\SiteBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class ControllerExtension extends Controller
{
public function render(string $view, array $parameters = array(), Response $response = null)
{
return parent::render($view, $parameters, $response);
}
}
class DefaultController extends ControllerExtension
{
public function indexAction()
{
return $this->render('MyBundle:Default:index.html.twig', array("abc" => "test"));
}
}
..но я получаю эту ошибку :
Уведомление об исполнении: Декларация ... ControllerExtension :: render() должна быть совместима с версией Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller :: render() в ... Bundle/SiteBundle/Controller/DefaultCont roller.php
Добавление этого не делает никакой разницы (это исправить, я где-то видел):
use Symfony\Component\HttpFoundation\Response
я не понимаю, почему переопределенная 'метод render' проще в использовании, чем предыдущий? –
Я не понимаю, почему ему пришлось переопределить его вообще ... – AchrafSoltani