Escolar Documentos
Profissional Documentos
Cultura Documentos
[Symfony 4] — Utilizando
Templates
Nando Kstro Net Follow
Dec 6, 2017 · 3 min read
Fala galera tudo bem? Voltamos com mais um post sobre Symfony 4, desta
vez vamos integrar o sistema de templates em nossa aplicação Symfony.
Aqui mostrarei a utilização do template engine Twig, caso não tenha
familiaridade com ele você pode acompanhar algumas aulas que fiz sobre o
mesmo abaixo:
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 1/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 2/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 3/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>{% block title %}Welcome!{% endblock %}</title>
6 {% block stylesheets %}{% endblock %}
7 </head>
8 <body>
9 {% block body %}{% endblock %}
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 4/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
{ y }{ }
10 {% block javascripts %}{% endblock %}
11 </body>
12 </html>
base.html.twig
hosted with ❤ by GitHub view raw
1 <?php
2
3 namespace App\Controller;
4
5 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
6 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
7 use Symfony\Component\HttpFoundation\Response;
8 use App\Entity\Product;
9
10 class ProductController extends AbstractController
11 {
12 /**
13 * @Route("/", name="product_home")
14 */
15 public function index()
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 5/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
15 public function index()
16 {
17 $products = $this->getDoctrine()
18 ->getRepository(Product::class)
19 ->findAll();
20
21 var_dump($products);
22 return new Response('Welcome to your new controller!');
23 }
24 }
ProductController.php
hosted with ❤ by GitHub view raw
1 <?php
2
3 namespace App\Controller;
4
5 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
6 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
7 use Symfony\Component\HttpFoundation\Response;
8 use App\Entity\Product;
9
10 class ProductController extends AbstractController
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 6/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
11 {
12 /**
13 * @Route("/", name="product_home")
14 */
15 public function index()
16 {
17 $products = $this->getDoctrine()
18 ->getRepository(Product::class)
19 ->findAll();
20
21
22 return $this->render('products/index.html.twig',[
23 'products' => $products
24 ]);
25 }
26 }
ProductController.php
hosted with ❤ by GitHub view raw
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 7/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
1 {% extends 'base.html.twig' %}
2
3 {% block body %}
4 <h1> Produtos </h1>
5 <hr>
6 <ul>
7 {% for p in products %}
8 <li>
9 Nome: {{p.name}}
10 - Preço: R$ {{p.price|number_format(2, ',', '.')}}
11 </li>
12 {% endfor %}
13 </ul>
14 {% endblock %}
index.html.twig
hosted with ❤ by GitHub view raw
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 8/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
Conclusões
Um ponto que queria comentar e que pode te ajudar em alguns momentos é
que os retornos das suas actions devem ser um objeto Response, do
Symfony\Component\HttpFoundation. Existem dois métodos 'render'
como helpers vindos do ControllerTrait que nosso AbstractController utiliza
e que nós extendemos. São eles:
render;
renderView.
Imagino que essa parte de templates seja bem tranquila, o que pode te
travar, caso você desconheça ainda, é a utilização do Twig. O Symfony
suporta templates php puros também, caso você não se sinta a vontade com
o Twig.
Espero que esse post possa te ajudar de alguma forma, desejo sucesso e paz!
Abs!
Conheça nosso curso Symfony 4 Na Prática, você pode saber mais info
clicando aqui.
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 10/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 11/12
21/06/2021 [Symfony 4] — Utilizando Templates | by Nando Kstro Net | Code Experts
https://blog.codeexpertslearning.com.br/symfony-4-utilizando-templates-1b800a882c5d 12/12