Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

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

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

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

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

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

Programme ASI Développeur

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

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

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

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

Formation en Logiciels Libres. Fiche d inscription

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

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Documentation technique

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

ECLIPSE ET PDT (Php development tools)

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

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

Introduction MOSS 2007

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

Nouveautés joomla 3 1/14

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Installation et prise en main

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Manuel d'installation de Joomla 1.7

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

WorkflowGen 6.0 Guide de mise à jour

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

TAGREROUT Seyf Allah TMRIM

Bien architecturer une application REST

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

LICENCE PROFESSIONNELLE

Gestion d Active Directory à distance : MMC & Délégation

UwAmp. Serveur d'evaluation

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

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

Point sur les solutions de développement d apps pour les périphériques mobiles

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

1. Installation du Module

contact@nqicorp.com - Web :

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

Microsoft Application Center Test

Un serveur web, difficile?

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

PHP 5.4 Développez un site web dynamique et interactif

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Chapitre 1 Windows Server

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Le stockage local de données en HTML5

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

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

Nuxeo 5.4 : les nouveautés

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Petite définition : Présentation :

TP JAVASCRIPT OMI4 TP5 SRC

Service de certificat

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

10. Base de données et Web. OlivierCuré

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

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

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

TP1. Outils Java Eléments de correction

Module BD et sites WEB

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Présentation du Framework BootstrapTwitter

Documentation de conception

Formation : WEbMaster

Livre Blanc WebSphere Transcoding Publisher

Sage CRM. 7.2 Guide de Portail Client

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Les outils de création de sites web

Chamilo Manuel Administrateur. Guide de l'administrateur. Chamilo janvier 2012 Page 1 / 108

Manuel du composant CKForms Version 1.3.2

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Assistance à distance sous Windows

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

LE CMS GUPPY. 2) Décompression : Elle se fait simplement avec le logiciel 7-Zip ou tout autre logiciel.

arcopole Studio Version 3.1

Drupal (V7) : principes et petite expérience

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

Rapport de stage Clément MOYSAN

Transcription:

Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

1. Définition de symfony 2 Symfony2 est donc un framework PHP. C'est un des frameworks les plus utilisés dans le monde, notamment dans les entreprises. La première version de Symfony est sortie en 2005 et a été crée par une équipe francaise de développeur. Aujourd hui il bénéficie d une grande communauté de développeur mondial ce qui permet une évolution plus rapide. Ce nouveau symfonnie est maintenant géré avec un système de bundle. Un Bundle est un ensemble de fichiers et répertoires permettant d'implémenter une ou des fonctionnalités (si possible réutilisables dans divers projets). Ils sont assez similaires au plugins dans Symfony 1.x, sauf que tout le code est stocké dans ces derniers: vues, actions, modèles, config 2. Installation de symfony 2 Pour installer symfony 2 il y a plusieurs méthodes : Si vous utilisez déjà Composer, vous pouvez télécharger cette distribution standard en une seule commande : php composer.phar create project symfony/framework standard edition Symfony 2.2. Cela va installer la version 2.2 de Symfony2 dans le répertoire Symfony.

Si vous êtes sous Windows, évitez de télécharger l'archive au format.tgz car des problèmes ont été rencontrés avec cette archive. (lien de téléchargement officiel : http://symfony.com/download )

3. Structure de symfony Ce framework est structuré en 4 dossier : app, src, vendor, web Le répertoire /app Ce répertoire contient tout ce qui concerne le site internet sauf son code source c est à dire la configuration, le cache, les fichiers logs. Le répertoire /src Le répertoire dans lequel se trouve le code source. Dans ce répertoire, le code est organisé en bundles, des briques de l application.

Le répertoire /vendor Ce répertoire contient toutes les bibliothèques externes à l application. Dans ces bibliothèques externes nous pouvons y trouver Syphony2, Doctrine, Twig, SwiftMailer, etc. Le répertoire /web Ce répertoire contient tous les fichiers destinés aux visiteurs : images, fichiers CSS et JavaScript, etc. Il contient également le contrôleur frontal (app.php).c'est le seul répertoire qui devrait être accessible aux visiteurs. Le contrôleur frontal Le contrôleur frontal est le point d'entrée de votre application. C'est le fichier par lequel passent toutes les pages. Dans Symfony2, le contrôleur frontal se situe dans le répertoire /web, il s'agit de app.php ou app_dev.php.

4. Symfony sur console Symfony2 intègre des commandes disponibles non pas via le navigateur, mais via l'invite de commandes (sous Windows) ou le terminal (sous Linux). Il existe pas mal de commandes qui vont nous servir assez souvent lors du développement. Les outils disponibles en ligne de commande ont pour objectif de nous faciliter la vie. On peut à partir de la console, générer une base de code source pour certains fichiers récurrents, vider le cache, ajouter des utilisateurs par la suite, etc. Sous windows il suffit de se placer dans le répertoire de symfony puis de taper : Ensuite, on peut exécuter toutes les commandes possibles disponibles sous symfony2. Liste des commandes préconstruites : $ php app/console list Il existe une commande list qui affiche la liste des options standard et des commandes enregistrées : $ php app/console Vous pouvez également avoir le même affichage sans exécuter aucune commande

$ php app/console help list La commande d'aide liste les informations de la commande spécifiées. $ php app/console help Exécuter help sans spécifier aucune commande listera les options globales : Lien vers d autres commandes : http://symfony.com/fr/doc/current/components/console/usage.html 5. Le fonctionnement : le routeur (les url), les bundles, twig(templates) Les routeurs : L'objectif du routeur est de dire à Symfony2 ce qu'il doit faire lorsque que l'on appelle l'url en utilisant des routes.

Exemple de route (source site du zéro) : Explication de cette route : Le "HelloTheWorld" est le nom de la route. Il est assez arbitraire, et vous permet juste de vous y retrouver par la suite. La seule contrainte est qu'il soit unique ; Le "pattern" correspond à l'url à laquelle nous souhaitons que notre hello world soit accessible. C'est ce qui permet à la route de dire : «cette URL est pour moi, je prends» ; Le "defaults" correspond aux paramètres de la routes, dont : Le "_controller", qui correspond à l'action (ici, "index") que l'on veut exécuter et au contrôleur (ici, "Blog") que l'on va appeler (un contrôleur peut contenir plusieurs actions, c'est à dire plusieurs pages). Ne vous inquiétez pas, un chapitre complet est dédié au routeur et vous permettra de jouer avec. Pour l'instant ce fichier nous permet juste d'avancer. Mais avant d'aller plus loin, penchons nous sur la valeur que l'on a donnée à _controller : «SdzBlogBundle:Blog:index». Cette valeur se découpe en suivant les pointillés les deux points («:») : «SdzBlogBundle» est le nom de notre bundle, celui dans lequel Symfony2 ira chercher le contrôleur ; «Blog» est le nom du contrôleur à ouvrir. En terme de fichier, cela correspond à controller/blogcontroller.php dans le répertoire du bundle. Dans notre cas, nous avons src/sdz/blogbundle/controller/blogcontroller.php comme chemin absolu. «index» est le nom de la méthode à exécuter au sein du contrôleur.

Les bundles : Chaque bundle dispose de ses propres routes. Un bundle est une brique de votre application. Ce concept innovant qui consiste à regrouper dans un même endroit, le bundle, tout ce qui concerne une même fonctionnalité. La découpe en bundles permet l'échange de bundles entre applications. Cela signifie que l on peut développer une fonctionnalité, puis la partager avec d'autres développeurs ou encore la réutiliser dans un autre projet.

Pour qu'un bundle soit opérationnel il faut : Son code source, situé dans src/application/bundle, et dont le seul fichier obligatoire est la classe à la racine SdzBlogBundle.php Enregistrer le bundle dans le noyau pour qu'il soit chargé, en modifiant le fichier app/appkernel.php Enregistrer les routes (si le bundle en contient) dans le Routeur pour qu'elles soient chargées, en modifiant le fichier app/config/routing.yml Ces trois points sont bien sûr effectués automatiquement lorsqu'on utilise le générateur. Mais on peut tout à fait créer un bundle sans l'utiliser, et il faudra alors remplir cette petite checklist. Par la suite, tout le code source sera situé dans des bundles. Un moyen très propre de bien structurer son application.

TWIG (templates) : C'est 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 c est à dire avec leur langage; En effet, chaque moteur a son propre langage. Exemple de template avec TWIG :

6. L architecture de symfony2 Symfony2 utilise le modèle MVC. Contrôleur (ou ontroller) son rôle est de générer la réponse à la requête HTTP demandée par notre visiteur. Il est la couche qui se charge d'analyser et de traiter la requête de l'utilisateur. Le contrôleur contient la logique de notre site Internet et va se contenter «d'utiliser» les autres composants : les modèles et les vues. Concrètement un contrôleur va récupérer, par exemple, les informations sur l'utilisateur courant, vérifier qu'il a le droit de modifier tel article, récupérer cet article et demander la page du formulaire d'édition de l'article. C'est tout bête, avec quelques if(), on s'en sort très bien ; Modèle (ou son rôle est de gérer vos données et votre contenu.

Model) Vue (ou View) Reprenons l'exemple de l'article. Lorsque je dis «le contrôleur récupère l'article», il va en fait faire appel au modèle «article» et lui dire : «donne moi l'article portant l'id 5». C'est le modèle qui sait comment récupérer cet article, généralement via une requête au serveur SQL, mais ça pourrait être depuis un fichier texte ou ce que vous voulez. Au final, il permet au contrôleur de manipuler les articles, mais sans savoir comment les articles sont stockés, gérés, etc. C'est une couche d'abstraction ; son rôle est d'afficher les pages. Reprenons encore l'exemple de l'article. Ce n'est pas le contrôleur qui affiche le formulaire, il ne fait qu'appeler la bonne vue. Si nous avons une vue «formulaire», les balises HTML du formulaire d'édition de l'article y seront et au final, le contrôleur ne fera qu'afficher cette vue sans savoir vraiment ce qu'il y a dedans. En pratique, c'est le designer d'un projet qui travaille sur les vues. Séparer vues et contrôleurs permet aux designers et développeurs PHP de travailler ensemble sans se marcher dessus.