SYMFONY 2. Minh THAI

Documents pareils
Devenez un véritable développeur web en 3 mois!

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Django. Framework de développement Web

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

The Cookbook for Symfony 2.4

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

PHP 5.4 Développez un site web dynamique et interactif

The Book for Symfony 2.1

SYSTÈMES D INFORMATIONS

Bonnes pratiques de développement JavaScript

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Programmation Web. Madalina Croitoru IUT Montpellier

Projet en nouvelles technologies de l information et de la communication

Introduction à MATLAB R

INTRODUCTION AU CMS MODX

Spétechs Mobile. Octobre 2013

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

REMBO Version 2.0. Mathrice 2004 DESCRIPTION MISE EN OEUVRE CONCLUSION.

Formation : WEbMaster

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Documentation Technique

1. Structure d'un programme FORTRAN 95

Modules Prestashop - ExportCatalogue / EXPORT IMPORT POUR MODIFICATIONS EN MASSE DANS PRESTASHOP VERSION Optim'Informatique

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

e-obs : Conception et utilisation Rémy Decoupes Ether // ums3365

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Le Rapport Automatique de Suivi (RAS)

Langage Java. Classe de première SI

Nouveautés de Drupal 8. Léon

TP JAVASCRIPT OMI4 TP5 SRC

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Notes pour l utilisation d Expression Web

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Intégrateur Web HTML5 CSS3

Environnements de développement (intégrés)

Utilisation d objets : String et ArrayList

Web Tier : déploiement de servlets

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Zen, SASS, responsive design

Dans ce mémento, vous trouverez les informations détaillées pour configurer les fonctionnalités du Responsive Design dans le Worldsoft CMS:

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

1. La notion de cascade

ECLIPSE ET PDT (Php development tools)

Algorithmique et Programmation, IMA

Les structures. Chapitre 3

STAGE IREM 0- Premiers pas en Python

AWS avancé. Surveiller votre utilisation d EC2

Django et PostgreSQL sous la charge

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Performance, rendement Vs Evolutivité

A QUOI SERVENT LES BASES DE DONNÉES?

Déploiement des manuels numériques sur tablette. Mode d emploi intégrateur / administrateur

les techniques d'extraction, les formulaires et intégration dans un site WEB

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Initiation à JAVA et à la programmation objet.

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

WebSpy Analyzer Giga 2.1 Guide de démarrage

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Collecter, organiser et diffuser l'information avec des outils gratuits

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Spétechs Mobile. D e r n i è r e m i s e à j o u r : a o û t 2014

Formation Webmaster : Création de site Web Initiation + Approfondissement

Drupal Développeur. Theming et développement pour Drupal. Une formation Formateur : Fabien Crépin. Drupal Développeur.

Logiciels de référencement

Introduction aux concepts d ez Publish

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Formation Découverte du Web

Programmation Internet Cours 4

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Etude et développement d un moteur de recherche

Tutoriel de formation SurveyMonkey

Application Web et J2EE

Dans l'article précédent, vous avez appris

Par l'exemple de. Laurent Destailleur

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Joomla! Création et administration d'un site web - Version numérique

Les Bases. Messaoudi Khaled, Boukelal Hanane (Etudiants Informatique ) 2015.

1. Installation du Module

Introduction au langage C

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Nouveautés joomla 3 1/14

TP1. Outils Java Eléments de correction

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Découvrir Drupal. Les meilleurs thèmes et modules Drupal (présenta5on démo)

Guide d implémentation. Réussir l intégration de Systempay

Transcription:

SYMFONY 2 Minh THAI moshi@moshi.fr http://moshi.fr/symfony/symfony2-lp.pdf 1

TWIG TWIG est un moteur de template au même titre que SMARTY. Il permet aux non développeurs de gérer la mise en forme d un site internet via une syntaxe simplifiée. Le projet TWIG a été repris par Sensio pour l incorporer au projet Symfony, vous trouverez donc un couplable important entre TWIG et Symfony. http://twig.sensiolabs.org/doc/templates.html 48

Fichiers App/Resources/view/base_layout.html.twig va être votre layout de base (base du site) Dans chaque Bundle vous aurez un répertoire Resources/views/ qui va être votre répertoire de template pour votre Bundle. Notez que vous pouvez avoir des sous dossiers par exemple Demo, pour appeler la template index.html.twig dans Demo on utilisera le chemin : MonBundle:Demo:index.html.twig Si on veut appeler toto.html.twig directement depuis Resources/views/ on utilisera ce chemin : MonBundle::toto.html.twig 49

Twig - logique {{ }} Affichage {% %} fonction ou logique Condition {% if %} {% elseif %} {% else %} {% endif %} Foreach {% for mavariableutilisée in montableau %} {%else %}Aucun résultat {% endfor %} 50

Twig Héritage Twig permet l héritage, profiter des éléments parents tout en les surchargeant Attention : à partir du moment ou une template hérite d une autre, les affichages doivent s exécuter à l intérieur de blocks. {% extends 'MonBundle::base.html.twig' %} on hérite de base.html.twig {% block content %}Test{% endblock%} un bloc est une zone que l on pourra modifier ou pas via les templates filles. {% block footer%}{{ parent() }} A rajouter {% enblock %} on appelle le block parent, et on lui rajoute un élément ici {{ parent() }} permet de récupérer le contenu du bloc parent et de l afficher 52

Commandes avancées {% include %} inclure une autre template {% render "MmiBundle:Controller:listAction" with {"max" : 3} %} render permet d inclure une action (donc une autre page) directement dans une template, on donne comme argument le chemin du bundle et de l action avec des arguments via with {% set foo = 'foo' %} on initialise des variables que l on peut afficher ou utiliser dans le code TWIG. {% raw %} {% endraw %} ce qui sera présent a l intérieur ne sera pas parsé, on peut donc écrire n importe quel code twig il ne sera pas reconnu à l intérieur de ces balises. La concaténation sous TWIG s effectue avec la vague ~ Exemple {{ title ~ «Suffixe» }} va ajouter suffixe à l affiche de notre title dynamique 53

Inclusion Pour render et include, on peut les utiliser dans des boucles : {% for box in boxes %} {% include "render_box.html.twig" %} {% endfor %} Ici render_box.html.twig va pouvoir utiliser la variable box directement dans la sous template 54

Liens <a href="{{ path('homepage') }}">Home<a/> //chemin relative <a href="{{ url('homepage') }}">Home<a/> //chemin absolute <a href="{{ path('show', {'id':article.id}) }}">Home</a> // avec des paramètres Path et url prennent comme argument la route name que vous avez créé dans la gestion de vos routes (en annotation dans notre cas) 55

Variables globales {{ app.security }} pour récupérer des informations d authentification {{ app.user }} récupérer l utilisateur connecté {{ app.request }} récupérer la request de la page (url, variable post et get etc) {{ app.request.get( toto ) }} va récupérer la valeur $_GET[ toto ] {{ app.request.request.get( titi ) va récupérer la valeur $_POST[ titi ] {{ app.session }} récupérer la variable $_SESSION 56

Filter Un filtre est une modification de l affiche ou d une variable à la volée sous Twig. {{ post.published_at date( m/d/y ) }} va afficher la date de published_at sous le format strftime {{ post.published_at date_modify("+1 day") date("m/d/y") }} va modifier la date d un jour et l afficher dans le format souhaité {{ title replace({'titi': toto, 'tata': "tutu }) ici on remplace titi par toto et tata par tutu {{ url url_decode() }} {{ title upper }} {{ title lower }} {{ text striptags }} {{ array join(, ) }} va joindre tous les éléments du tableau avec une virgule {{ str split(, ) }} va transformer en array une chaine de caracère en séparant les virgules {{ array reverse }} {{ array length }} {{ title trim }} {{ text e }} affiche le code html, css ou javascript de façon à ce que le navigateur ne l interprête pas, affichage plain text 57

Exercice Reprenez votre Exercice 1 mais en mettant tous les titres en majuscule, Ajouter une date à votre modèle et afficher le sous le format français : «d/m/y» A vos titres de pages préfixez «Mmi», Faites des liens dynamiques entre les 3 pages créées précédemment. Utilisez le système d héritage pour mettre en place rapidement un menu, footer et sidebar sur les 3 pages. La page Listing n aura pas de sidebar. 58