19/02/2018 - SYMFONY, TWIG
Twig kalıplarının varsayılan lokasyonu app/Resources/views
'dir ama bunu klasik olan lokasyon src/AppBundle/Resources/views
ile değiştirmek isterseniz, aşağıdaki konfigürasyonu yapmanız gerekir.
# app/config/config.yml
twig:
...
paths: ["%kernel.project_dir%/src/AppBundle/Resources/views"]
Twig kalıplarını @templating
servisini controller içine enjekte ederek sunmak isterseniz, aşağıdaki konfigürasyonu yapmanız gerekir.
# app/config/config.yml
framework:
templating:
engines: ['twig']
Yukarıdaki değişikliklerden sonra aşağıdakine benzer bir controller kullanabilirsiniz.
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
use Symfony\Component\HttpFoundation\Response;
class DefaultController
{
private $templating;
public function __construct(EngineInterface $templating)
{
$this->templating = $templating;
}
public function indexAction()
{
$template = $this->templating->render('AppBundle:default:index.html.twig', [...]);
return (new Response())->setContent($template);
}
}
# src/AppBundle/Resources/views/default/index.html.twig
{% extends '::base.html.twig' %}
{% block body %}
Default
{% endblock %}