User Tools

Site Tools


symfony:symfony_tutorial_notes:creating_and_using_templates

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
symfony:symfony_tutorial_notes:creating_and_using_templates [2015/09/16 21:26] – [Output Escaping] mithatsymfony:symfony_tutorial_notes:creating_and_using_templates [2015/09/16 21:41] (current) – [Including Stylesheets and JavaScripts in Twig] mithat
Line 3: Line 3:
 ===== TL;DR ===== ===== TL;DR =====
   * Templates typically live in ''app/Resources/views/''.   * Templates typically live in ''app/Resources/views/''.
-  * Third-party bundle templates live in ''path/to/bundle/Resources/views/''. (Command line generator puts them here too it seems; also seems not a best practice.)+  * Third-party bundle templates live in ''path/to/bundle/Resources/views/''. (The command line generator puts them here too it seems, which I believe is no longer a best practice.)
  
 <code twig> <code twig>
Line 47: Line 47:
 ==== Including other Templates ==== ==== Including other Templates ====
 <code twig> <code twig>
-    {% for article in articles %} +{% for article in articles %} 
-        {{ include('article/article_details.html.twig', { 'article': article }) }} +    {{ include('article/article_details.html.twig', { 'article': article }) }} 
-    {% endfor %}+{% endfor %}
 </code> </code>
  
Line 118: Line 118:
 Consider using [[http://symfony.com/doc/current/cookbook/assetic/asset_management.html|Assetic]]. Consider using [[http://symfony.com/doc/current/cookbook/assetic/asset_management.html|Assetic]].
  
-With Twig, assuming you have parent:+With Twig, assuming you have the parent:
  
 <code twig> <code twig>
Line 130: Line 130:
 </code> </code>
  
-in child you can add to the assets defined in the parent:+in its child you can add to the assets defined in the parent:
 <code twig> <code twig>
 {% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
Line 152: Line 152:
  
 ===== Configuring and Using the templating Service ===== ===== Configuring and Using the templating Service =====
-TODO+<code php> 
 +return $this->render('article/index.html.twig'); 
 +</code>
  
 +is equivalent to:
 +
 +<code php>
 +use Symfony\Component\HttpFoundation\Response;
 +
 +$engine = $this->container->get('templating');
 +$content = $engine->render('article/index.html.twig');
 +
 +return $response = new Response($content);
 +</code>
 +
 +It's preconfigured out of the box. Further config is in:
 +
 +<file yaml app/config/config.yml>
 +framework:
 +    # ...
 +    templating: { engines: ['twig'] }
 +</file>
 ===== Overriding Bundle Templates ===== ===== Overriding Bundle Templates =====
-TODO+[[http://symfony.com/doc/current/book/templating.html#overriding-bundle-templates|The source]].
  
 ==== Overriding Core Templates ==== ==== Overriding Core Templates ====
-TODO+[[http://symfony.com/doc/current/book/templating.html#overriding-core-templates|The source]].
  
 ===== Three-level Inheritance ===== ===== Three-level Inheritance =====
Line 183: Line 203:
 <code twig>{{ article.body|raw }}</code> <code twig>{{ article.body|raw }}</code>
  
-You can also disable output escaping inside a {% block %} area or for an entire template. See [[http://twig.sensiolabs.org/doc/api.html#escaper-extension|Output Escaping]] in the Twig documentation.+You can also disable output escaping inside a ''{% block %}'' area or for an entire template. See [[http://twig.sensiolabs.org/doc/api.html#escaper-extension|Output Escaping]] in the Twig documentation.
 ==== Output Escaping in PHP ==== ==== Output Escaping in PHP ====
 In PHP, output escaping is not automatic, meaning you'll need to manually ''escape()'' where necessary: In PHP, output escaping is not automatic, meaning you'll need to manually ''escape()'' where necessary:
Line 221: Line 241:
 </file> </file>
  
-To ''dump()'' in Twig, its ''debug'' setting (in ''config.yml'') must be ''true'' (which is the case for 'dev' but not 'prod').+To ''dump()'' in Twig, Twig'''debug'' setting (in ''config.yml'') must be ''true'' (which is the case for ''dev'' but not ''prod'').
  
 ===== Syntax Checking ===== ===== Syntax Checking =====
symfony/symfony_tutorial_notes/creating_and_using_templates.1442438763.txt.gz · Last modified: 2015/09/16 21:26 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki