SlideShare ist ein Scribd-Unternehmen logo
1 von 10
1
Symfony 2

ABDELKADER RHOUATI
ABDELKADER.RHOUATI@GMAIL.COM
COURS SF 2 - 2013

2
3

Chapitre 2 :
Les vues en Twig
Symfony utilise le moteur
de template Twig


4

C’est quoi un moteur de template ?
Un script qui permet d'utiliser des templates, c'est-à-dire des
fichiers qui ont pour but d’afficher le contenu de votre page
HTML de façon dynamique mais sans PHP, en utilisant leur
propre langage. Chaque moteur a son propre langage.




Twig est développé par l’équipe de SensioLabs.
Le premier objectif est de séparer la couche de présentation des
applications web.



Twig offre une meilleure:
1.
2.
3.

Lisibilité : {{mavar}} à la place de <?php echo $mavar; ?> 
Ré-utisabilité : héritage entre Template.
Sécurité: variables protégées
Les vues : Twig vs PHP


Exemple de code en PHP



Le même code en Twig

5
Syntaxe du langague
 Syntaxe

6

claire, concise et facile à Apprendre :

2.
3.
4.

Variables : {{ mavar }} , {{objet.attribut}}, {{objet->attribut}},
{{tableau[‘element’]}}
Expressions : { % if condition %} … {%endif%}
Commentaires : {# commentaires #}
Liens avec path :

1.
2.
3.

Filtres : {{ varDate|date(“mdy”)}}
Tests: {% if var is defined %} … {% endif %}
Boucle :

1.

<a href = {{ path(‘homepage ‘) }}>Accueil </a>

{% for user in users %}
<li>{{ user.username|e }}</li>
{% endfor %}

Documentation complète : http://twig.sensiolabs.org/documentation
L’héritage des templates


7

 Permet de  réutiliser certains blocs qui se répètent d’une page à
l’autre
TEMPALTE PARENT : layout.html.twig
HEADER

Templates fils

SIEDBAR

{% extends
{# définir un block #}
‘UserBundleBundle::layout.ml.twig’
%} {% block content %}
{% block…
content %}
{% endblock %}}}
{{ parent()
Contenu spécifique
{% endblock%}
FOOTER
Gestion des css / js / image

8

Pour chaque Bundle créer un Asset : répertoire qui
regroupe l’ensemble des fichier CSS/JS/Image d’un
bundle, utiliser la commande depuis la racine du Symfony :
php app/console assets:install web

Utiliser la fonction asset() pour appeler les fichiers
depuis les vues twig
Passer des variables du
contrôleur vers la vue


9

Au niveau du contrôleur retourner un tableau associatif du
genre :
Array( ‘nom_variable_twig’ => $variable, …)
On peut passer des variable simples, des tableau et même
des objets
Passer des variables du
contrôleur vers la vue


9

Au niveau du contrôleur retourner un tableau associatif du
genre :
Array( ‘nom_variable_twig’ => $variable, …)
On peut passer des variable simples, des tableau et même
des objets

Weitere ähnliche Inhalte

Was ist angesagt?

symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
Fabien Potencier
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Hugo Hamon
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
Xavier Gorse
 
Principes De Base De Asp .Net
Principes De Base De Asp .NetPrincipes De Base De Asp .Net
Principes De Base De Asp .Net
Gregory Renard
 

Was ist angesagt? (20)

Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Symfony 2 et le Web
Symfony 2 et le WebSymfony 2 et le Web
Symfony 2 et le Web
 
Symfony Best Practices
Symfony Best PracticesSymfony Best Practices
Symfony Best Practices
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Symfony2 Presentation
Symfony2 PresentationSymfony2 Presentation
Symfony2 Presentation
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overview
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
Formation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP Labs
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
Plateforme De DéVeloppement En Php5 (Zend + Doctrine)
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
 
Principes De Base De Asp .Net
Principes De Base De Asp .NetPrincipes De Base De Asp .Net
Principes De Base De Asp .Net
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 

Andere mochten auch

Very lastroom symfony1 vers symfony2 en douceur
Very lastroom   symfony1 vers symfony2 en douceurVery lastroom   symfony1 vers symfony2 en douceur
Very lastroom symfony1 vers symfony2 en douceur
Sébastien Houzé
 
Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest
Ahmed Ghali
 
Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 

Andere mochten auch (18)

Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
Symfony 2 : chapitre 3 - Les modèles en Doctrine 2
 
Introduction au business modèle des applications mobile
Introduction au business modèle des applications mobileIntroduction au business modèle des applications mobile
Introduction au business modèle des applications mobile
 
Very lastroom symfony1 vers symfony2 en douceur
Very lastroom   symfony1 vers symfony2 en douceurVery lastroom   symfony1 vers symfony2 en douceur
Very lastroom symfony1 vers symfony2 en douceur
 
Dependency Injection Smells
Dependency Injection SmellsDependency Injection Smells
Dependency Injection Smells
 
Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest
 
PHP 5 pour les développeurs Java
PHP 5 pour les développeurs JavaPHP 5 pour les développeurs Java
PHP 5 pour les développeurs Java
 
Empezando con Twig
Empezando con TwigEmpezando con Twig
Empezando con Twig
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
Etude des Frameworks PHP
Etude des Frameworks PHPEtude des Frameworks PHP
Etude des Frameworks PHP
 
Créer une API GraphQL avec Symfony
Créer une API GraphQL avec SymfonyCréer une API GraphQL avec Symfony
Créer une API GraphQL avec Symfony
 
Formation angular js - Constellation
Formation angular js - ConstellationFormation angular js - Constellation
Formation angular js - Constellation
 
Symfony 2 : Performances et Optimisations
Symfony 2 : Performances et OptimisationsSymfony 2 : Performances et Optimisations
Symfony 2 : Performances et Optimisations
 
Building Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSBuilding Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJS
 
PHP et PHP Framework
PHP et PHP FrameworkPHP et PHP Framework
PHP et PHP Framework
 
Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnante
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec Symfony
 
Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CI
 

Ähnlich wie Symfony 2 : chapitre 2 - Les vues en Twig

Dw006 formation-dreamweaver-cc-les-bases-et-perfectionnement
Dw006 formation-dreamweaver-cc-les-bases-et-perfectionnementDw006 formation-dreamweaver-cc-les-bases-et-perfectionnement
Dw006 formation-dreamweaver-cc-les-bases-et-perfectionnement
CERTyou Formation
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Gregory Renard
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Gregory Renard
 
Dw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-basesDw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-bases
CERTyou Formation
 

Ähnlich wie Symfony 2 : chapitre 2 - Les vues en Twig (20)

retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
Dw006 formation-dreamweaver-cc-les-bases-et-perfectionnement
Dw006 formation-dreamweaver-cc-les-bases-et-perfectionnementDw006 formation-dreamweaver-cc-les-bases-et-perfectionnement
Dw006 formation-dreamweaver-cc-les-bases-et-perfectionnement
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Silverlight 4
Silverlight 4Silverlight 4
Silverlight 4
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Dw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-basesDw005 formation-dreamweaver-cc-les-bases
Dw005 formation-dreamweaver-cc-les-bases
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0
 
Formation developpement web KADODJOMON EMMANUEL COULIBALY.pptx
Formation developpement web KADODJOMON EMMANUEL COULIBALY.pptxFormation developpement web KADODJOMON EMMANUEL COULIBALY.pptx
Formation developpement web KADODJOMON EMMANUEL COULIBALY.pptx
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
MVVM de A à Z
MVVM de A à ZMVVM de A à Z
MVVM de A à Z
 

Mehr von Abdelkader Rhouati (6)

Sept règles d’or pour parler en public
Sept règles d’or pour parler en publicSept règles d’or pour parler en public
Sept règles d’or pour parler en public
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Comparaison des CMS
Comparaison des CMSComparaison des CMS
Comparaison des CMS
 
برنامج جمعية بسمة أمل بوجدة لسنة 2013
برنامج جمعية بسمة أمل بوجدة لسنة 2013برنامج جمعية بسمة أمل بوجدة لسنة 2013
برنامج جمعية بسمة أمل بوجدة لسنة 2013
 
Réussir votre carrière - version arabe
Réussir votre carrière - version arabeRéussir votre carrière - version arabe
Réussir votre carrière - version arabe
 
Réussir sa carrière
Réussir sa carrièreRéussir sa carrière
Réussir sa carrière
 

Symfony 2 : chapitre 2 - Les vues en Twig

  • 1. 1
  • 3. 3 Chapitre 2 : Les vues en Twig
  • 4. Symfony utilise le moteur de template Twig  4 C’est quoi un moteur de template ? Un script qui permet d'utiliser des templates, c'est-à-dire des fichiers qui ont pour but d’afficher le contenu de votre page HTML de façon dynamique mais sans PHP, en utilisant leur propre langage. Chaque moteur a son propre langage.   Twig est développé par l’équipe de SensioLabs. Le premier objectif est de séparer la couche de présentation des applications web.  Twig offre une meilleure: 1. 2. 3. Lisibilité : {{mavar}} à la place de <?php echo $mavar; ?>  Ré-utisabilité : héritage entre Template. Sécurité: variables protégées
  • 5. Les vues : Twig vs PHP  Exemple de code en PHP  Le même code en Twig 5
  • 6. Syntaxe du langague  Syntaxe 6 claire, concise et facile à Apprendre : 2. 3. 4. Variables : {{ mavar }} , {{objet.attribut}}, {{objet->attribut}}, {{tableau[‘element’]}} Expressions : { % if condition %} … {%endif%} Commentaires : {# commentaires #} Liens avec path : 1. 2. 3. Filtres : {{ varDate|date(“mdy”)}} Tests: {% if var is defined %} … {% endif %} Boucle : 1. <a href = {{ path(‘homepage ‘) }}>Accueil </a> {% for user in users %} <li>{{ user.username|e }}</li> {% endfor %} Documentation complète : http://twig.sensiolabs.org/documentation
  • 7. L’héritage des templates  7  Permet de  réutiliser certains blocs qui se répètent d’une page à l’autre TEMPALTE PARENT : layout.html.twig HEADER Templates fils SIEDBAR {% extends {# définir un block #} ‘UserBundleBundle::layout.ml.twig’ %} {% block content %} {% block… content %} {% endblock %}}} {{ parent() Contenu spécifique {% endblock%} FOOTER
  • 8. Gestion des css / js / image 8 Pour chaque Bundle créer un Asset : répertoire qui regroupe l’ensemble des fichier CSS/JS/Image d’un bundle, utiliser la commande depuis la racine du Symfony : php app/console assets:install web Utiliser la fonction asset() pour appeler les fichiers depuis les vues twig
  • 9. Passer des variables du contrôleur vers la vue  9 Au niveau du contrôleur retourner un tableau associatif du genre : Array( ‘nom_variable_twig’ => $variable, …) On peut passer des variable simples, des tableau et même des objets
  • 10. Passer des variables du contrôleur vers la vue  9 Au niveau du contrôleur retourner un tableau associatif du genre : Array( ‘nom_variable_twig’ => $variable, …) On peut passer des variable simples, des tableau et même des objets