SlideShare une entreprise Scribd logo
1  sur  27
1
Symfony 2.0
AHMED ABATAL
ABATALAHMED1@GMAIL.COM
COURS SF 2.0 - 2014
2
Chapitre 1 :
Vue d'ensemble de Symfony 2
3
Symfony 2, un Framework
PHP
 Symfony2 est un Framework PHP open source , c' est-à-dire une
boite à outils faite en PHP dans but de vous simplifier le
développement des applications et sites web.
 Un Framework Français créé par la société SensioLab, en sa
première version sortie en 2005
 Une communauté active qui utilise le framework et qui contribue
en retour
 Une documentation de qualité et régulièrement mise à jour
 Un code source maintenu par des développeurs attitrés
 Un code qui respecte les standards de programmation
 Un support à long terme garanti et des mises à jour qui ne
cassent pas la compatibilité
4
Symfony 2, un Framework
PHP
 Symfony 2 nécessite une version de PHP supérieure ou égale
à 5.3.3 et propose une série de fonctionnalités avancées telles
que :
 un système de configuration en cascade utilisant le langage YAML ;
 le support d’Ajax ;
 l’internationalisation des projets ;
 un générateur de backoffice ;
 un système de mise en cache …
5
Télécharger Symfony 2.2
 Disponible sur le lien : http://symfony.com/download
 Deux options de téléchargement :
1. Version " without vendors" . Les librairies tierces seront ainsi
téléchargées via Git en exécutant le script « bin/vendors » situé
dans l'archive
exécutez la commande : php bin/vendors install
1. Version simple, avec les vendors, pour avoir toutes les librairies
incluses
6
Première Installation 1/3
 Décompressez les fichiers dans votre répertoire web
habituel, par exemple "C:wampwww" pour Windows
 Vérifier votre configuration PHP en accédant à l’url :
« http://localhost/symfony/web/config.php »
7
Première Installation 2/3
 Configuration de votre instance Symfony :
http://localhost/symfony/web/app_dev.php/_configurator
 Configuration en deux étapes :
1. Données d’accès à la base de donnée
2. Génération d’un hashcode utilisé pour des raisons de
sécurités
8
Première Installation 3/3
 C’est bon ! Vous pouvez maintenant vous connecter à votre
premier application Symfony 2 :
http://localhost/symfony/web/app_dev.php/
9
Arborescence des fichiers
 4 principaux répertoires :
1. app/ : Contient les fichiers des applications sauf
le code source, notamment; la configuration, le
cache, les fichiers logs etc...
2. vendor/ : contient toutes les librairies externes,
comme Doctrine, Twig, Swiftmailer…
3. Web/ : Ce répertoire contient tous les fichiers
destinés aux visiteurs : images , fichiers CSS et
JavaScript … Il contient également le
contrôleur frontal (app.php), dont nous
parlerons après. (NB: c’est le seul repertoire qui
doit être accessible par les internautes)
4. src/ : contient le code source des applications
organisé sous forme de bundles (par défaut il
contient un bundle d’exemple fourni par
Symfony)
10
Symfony et
MVC 2
11
La notion de « Bundle »
 Un bundle est une brique de votre application, permet de
regrouper toutes les ressources
 Quel intérêt ?
E n plus d' organiser votre code par fonctionnalité, la découpe en
bundles permet l'échange de bundles entre applications ! Cela
signifie que vous pouvez développer une fonctionnalité, puis la
partager avec d'autres développeurs ou encore la réutiliser dans
un de vos autres projets. Et de même utiliser des bundles d’autre
développeurs
 Dans Symfony2, chaque partie de votre site est un bundle
 Les Bundles de la communauté : http://knpbundles.com/
12
Créer un « Bundle »
 Dans la racine de Symfony, taper la commande :
php app/console generate:bundle
Ensuite suivre les étapes sur la consoles
13
Créer un « Bundle »
14Générer un bundle en ligne de commande
Structure d’un bundle
 Controller/ : Contient les contrôleurs
 DependencyInjection/ : les informations
sur votre bundles
 Ressources/
--- config/ : Contient les fichier de
configuration, notamment les routes
--- doc/ : contient la documentation
--- public/ : Contient les fichiers publics de
votre bundle : fichiers CSS et JavaScript,
images, etc
--- translations/
--- views / : Contient les vues de notre
bundle ( les templates Twig )
 Tests/ : Contient vos éventuels tests
unitaires et fonctionnels.
15
Bundle :
Controller et View
16
 Récupère les informations http
 Renvois la réponse.
 Contient la logique de
l’application.
 Considéré comme chef
d’orchestre qui fait la liaison entre
tous les éléments.
 Afficher le résultat de l’ action
 Assurer la séparation entre le
code HTML et le code PHP,
 Utilisation du moteur de template
Twig.
Créer un Bundle
17Actions et Vues
Manipuler les variables
envoyées en POST et/ou GET
 Récupérer l ' objet Request depuis notre contrôleur
 Utiliser l’objet pour récupérer les variables GET et/ou POST
GET : $request->query->get(‘nom_variable’)
POST : $request->request>get(‘nom_variable’)
Et Aussi les Cookies : $request->cookies->get(‘nom_variable’)
 Pour les sessions :
$session = $this->get('session');
$session->get('user_id')
18
La configuration : Système
d’annotation
 Plusieurs possibilité : yml, xml et annotation
 L’annotation est le moyen le plus rapide et simple pour des
projets de petite et moyenne taille
 Comment ça marche ?
19
Commentaire du genre :
@MotCles(Valeur2, Valeur2…)
Les Routes en Symfony
 Les routes en Symfony2 déterminent quel contrôleur exécuter en
fonction de l’URL appelé par l’internaute
 Annotation à ajouter au niveau des classes PHP des contrôleurs
@Route([URL], [Param 1], [Param 2]… )
Important : n’oublier pas d’appeler la classe Route par le
namespace suivant
use SensioBundleFrameworkExtraBundleConfigurationRoute
20
Les routes :
Règles 1/6
 Declarer une route simple pour un contrôleur
21
Les routes :
Règles 2/6
 Pour chaque route on peut definer :
1. /{nom_variable}  à passer en paramètre de la méthode
2. requierements={“nom_variable” = [expression régulière]}
3. defaults={“nom_variable” = “”valeur par defaut}
22
Les routes :
Règles 3/6
 Il est aussi possible de définir plusieurs URL’s au même
controleur
23
Les routes :
Règles 4/6
 Important : Pour que Symfony prend en compte les
annotations de routes définis dans le contrôleur, il faut
l’activer en ajouter les lignes suivantes au fichier de config
“app/config/routing.yml”
Par fichier :
Par répertoire
24
Les routes :
Règles 5/6
 Définir pour chaque contrôleur un prefix d’url
Lors de l’activation
Au niveau du fichier
25
Les routes :
Règles 6/6
 Définir un nom pour chaque route , cela peut être utiliser pour
générer des liens dans les vues
 Chaque route peut correspondre à une methode GET ou POST ou
les deux
26
Symfony Possède un
système de cache
 Pensez à vider le cache, des fois il suffit de le faire
pour votre code fonctionne correctement :
php app/console cache:clear
27

Contenu connexe

Tendances

Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Tony Galmiche
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesAbdelkader Rhouati
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epitaNoel GUILBERT
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overviewSymfonyMu
 
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 ProfessionnelsFabien Potencier
 
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 2009Philippe Gamache
 
Formation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsKNP 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 FrameworkHugo Hamon
 
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 symfony3Nicolas Lœuillet
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1Amir Souissi
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3Amir Souissi
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyXavier Gorse
 
Principes De Base De Asp .Net
Principes De Base De Asp .NetPrincipes De Base De Asp .Net
Principes De Base De Asp .NetGregory Renard
 
Powershell
PowershellPowershell
PowershellUGAIA
 

Tendances (20)

Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulaires
 
Symfony Best Practices
Symfony Best PracticesSymfony Best Practices
Symfony Best Practices
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
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
 
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
 
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
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
Principes De Base De Asp .Net
Principes De Base De Asp .NetPrincipes De Base De Asp .Net
Principes De Base De Asp .Net
 
Powershell
PowershellPowershell
Powershell
 

En vedette

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 2Abdelkader Rhouati
 
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 douceurSébastien Houzé
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Symfony 2 : Performances et Optimisations
Symfony 2 : Performances et OptimisationsSymfony 2 : Performances et Optimisations
Symfony 2 : Performances et OptimisationsLes-Tilleuls.coop
 
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 gagnanteVanessa David
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec SymfonyMohammed Rhamnia
 
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 CIHugo Hamon
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsHugo Hamon
 
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm
 
Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Ayed CHOKRI
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
La migration continue vers Symfony
La migration continue vers SymfonyLa migration continue vers Symfony
La migration continue vers SymfonyFrancois Zaninotto
 
Meetup symfony2-3wa
Meetup symfony2-3waMeetup symfony2-3wa
Meetup symfony2-3waunpetitlu
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQLAlphorm
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEOussama Djerba
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeENSET, Université Hassan II Casablanca
 
Projet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continue
Projet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continueProjet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continue
Projet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continueNovius
 
Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Fabien Gasser
 

En vedette (20)

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
 
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
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Symfony 2 : Performances et Optimisations
Symfony 2 : Performances et OptimisationsSymfony 2 : Performances et Optimisations
Symfony 2 : Performances et Optimisations
 
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
 
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
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
 
Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
La migration continue vers Symfony
La migration continue vers SymfonyLa migration continue vers Symfony
La migration continue vers Symfony
 
Meetup symfony2-3wa
Meetup symfony2-3waMeetup symfony2-3wa
Meetup symfony2-3wa
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQL
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Projet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continue
Projet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continueProjet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continue
Projet de Fin d’Études - Écoles d'ingénieur informatique - Intégration continue
 
Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ?
 

Similaire à Presentation Symfony2

Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony Imad ZAIRIG
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linuxKhalid ALLILI
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.pptadiouf2
 
#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 CodeIgniterAtsé François-Xavier KOBON
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravoSoumia Brabije
 
cours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfGroupeExcelMarrakech
 
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 webHouda TOUKABRI
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsThierry Gayet
 
Mannuel_Attaque_VoIP
Mannuel_Attaque_VoIPMannuel_Attaque_VoIP
Mannuel_Attaque_VoIPBelkacem KAID
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 
Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHPMoncef Essid
 

Similaire à Presentation Symfony2 (20)

Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony
 
Hady bah l3
Hady bah l3Hady bah l3
Hady bah l3
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
#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
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Installation et configuration d'openbravo
Installation et configuration d'openbravoInstallation et configuration d'openbravo
Installation et configuration d'openbravo
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
 
cours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdfcours-gratuit.com--coursMySql-id2218.pdf
cours-gratuit.com--coursMySql-id2218.pdf
 
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
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
 
Mannuel_Attaque_VoIP
Mannuel_Attaque_VoIPMannuel_Attaque_VoIP
Mannuel_Attaque_VoIP
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
Cours intro
Cours introCours intro
Cours intro
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHP
 

Presentation Symfony2

  • 1. 1
  • 3. Chapitre 1 : Vue d'ensemble de Symfony 2 3
  • 4. Symfony 2, un Framework PHP  Symfony2 est un Framework PHP open source , c' est-à-dire une boite à outils faite en PHP dans but de vous simplifier le développement des applications et sites web.  Un Framework Français créé par la société SensioLab, en sa première version sortie en 2005  Une communauté active qui utilise le framework et qui contribue en retour  Une documentation de qualité et régulièrement mise à jour  Un code source maintenu par des développeurs attitrés  Un code qui respecte les standards de programmation  Un support à long terme garanti et des mises à jour qui ne cassent pas la compatibilité 4
  • 5. Symfony 2, un Framework PHP  Symfony 2 nécessite une version de PHP supérieure ou égale à 5.3.3 et propose une série de fonctionnalités avancées telles que :  un système de configuration en cascade utilisant le langage YAML ;  le support d’Ajax ;  l’internationalisation des projets ;  un générateur de backoffice ;  un système de mise en cache … 5
  • 6. Télécharger Symfony 2.2  Disponible sur le lien : http://symfony.com/download  Deux options de téléchargement : 1. Version " without vendors" . Les librairies tierces seront ainsi téléchargées via Git en exécutant le script « bin/vendors » situé dans l'archive exécutez la commande : php bin/vendors install 1. Version simple, avec les vendors, pour avoir toutes les librairies incluses 6
  • 7. Première Installation 1/3  Décompressez les fichiers dans votre répertoire web habituel, par exemple "C:wampwww" pour Windows  Vérifier votre configuration PHP en accédant à l’url : « http://localhost/symfony/web/config.php » 7
  • 8. Première Installation 2/3  Configuration de votre instance Symfony : http://localhost/symfony/web/app_dev.php/_configurator  Configuration en deux étapes : 1. Données d’accès à la base de donnée 2. Génération d’un hashcode utilisé pour des raisons de sécurités 8
  • 9. Première Installation 3/3  C’est bon ! Vous pouvez maintenant vous connecter à votre premier application Symfony 2 : http://localhost/symfony/web/app_dev.php/ 9
  • 10. Arborescence des fichiers  4 principaux répertoires : 1. app/ : Contient les fichiers des applications sauf le code source, notamment; la configuration, le cache, les fichiers logs etc... 2. vendor/ : contient toutes les librairies externes, comme Doctrine, Twig, Swiftmailer… 3. Web/ : Ce répertoire contient tous les fichiers destinés aux visiteurs : images , fichiers CSS et JavaScript … Il contient également le contrôleur frontal (app.php), dont nous parlerons après. (NB: c’est le seul repertoire qui doit être accessible par les internautes) 4. src/ : contient le code source des applications organisé sous forme de bundles (par défaut il contient un bundle d’exemple fourni par Symfony) 10
  • 12. La notion de « Bundle »  Un bundle est une brique de votre application, permet de regrouper toutes les ressources  Quel intérêt ? E n plus d' organiser votre code par fonctionnalité, la découpe en bundles permet l'échange de bundles entre applications ! Cela signifie que vous pouvez développer une fonctionnalité, puis la partager avec d'autres développeurs ou encore la réutiliser dans un de vos autres projets. Et de même utiliser des bundles d’autre développeurs  Dans Symfony2, chaque partie de votre site est un bundle  Les Bundles de la communauté : http://knpbundles.com/ 12
  • 13. Créer un « Bundle »  Dans la racine de Symfony, taper la commande : php app/console generate:bundle Ensuite suivre les étapes sur la consoles 13
  • 14. Créer un « Bundle » 14Générer un bundle en ligne de commande
  • 15. Structure d’un bundle  Controller/ : Contient les contrôleurs  DependencyInjection/ : les informations sur votre bundles  Ressources/ --- config/ : Contient les fichier de configuration, notamment les routes --- doc/ : contient la documentation --- public/ : Contient les fichiers publics de votre bundle : fichiers CSS et JavaScript, images, etc --- translations/ --- views / : Contient les vues de notre bundle ( les templates Twig )  Tests/ : Contient vos éventuels tests unitaires et fonctionnels. 15
  • 16. Bundle : Controller et View 16  Récupère les informations http  Renvois la réponse.  Contient la logique de l’application.  Considéré comme chef d’orchestre qui fait la liaison entre tous les éléments.  Afficher le résultat de l’ action  Assurer la séparation entre le code HTML et le code PHP,  Utilisation du moteur de template Twig.
  • 18. Manipuler les variables envoyées en POST et/ou GET  Récupérer l ' objet Request depuis notre contrôleur  Utiliser l’objet pour récupérer les variables GET et/ou POST GET : $request->query->get(‘nom_variable’) POST : $request->request>get(‘nom_variable’) Et Aussi les Cookies : $request->cookies->get(‘nom_variable’)  Pour les sessions : $session = $this->get('session'); $session->get('user_id') 18
  • 19. La configuration : Système d’annotation  Plusieurs possibilité : yml, xml et annotation  L’annotation est le moyen le plus rapide et simple pour des projets de petite et moyenne taille  Comment ça marche ? 19 Commentaire du genre : @MotCles(Valeur2, Valeur2…)
  • 20. Les Routes en Symfony  Les routes en Symfony2 déterminent quel contrôleur exécuter en fonction de l’URL appelé par l’internaute  Annotation à ajouter au niveau des classes PHP des contrôleurs @Route([URL], [Param 1], [Param 2]… ) Important : n’oublier pas d’appeler la classe Route par le namespace suivant use SensioBundleFrameworkExtraBundleConfigurationRoute 20
  • 21. Les routes : Règles 1/6  Declarer une route simple pour un contrôleur 21
  • 22. Les routes : Règles 2/6  Pour chaque route on peut definer : 1. /{nom_variable}  à passer en paramètre de la méthode 2. requierements={“nom_variable” = [expression régulière]} 3. defaults={“nom_variable” = “”valeur par defaut} 22
  • 23. Les routes : Règles 3/6  Il est aussi possible de définir plusieurs URL’s au même controleur 23
  • 24. Les routes : Règles 4/6  Important : Pour que Symfony prend en compte les annotations de routes définis dans le contrôleur, il faut l’activer en ajouter les lignes suivantes au fichier de config “app/config/routing.yml” Par fichier : Par répertoire 24
  • 25. Les routes : Règles 5/6  Définir pour chaque contrôleur un prefix d’url Lors de l’activation Au niveau du fichier 25
  • 26. Les routes : Règles 6/6  Définir un nom pour chaque route , cela peut être utiliser pour générer des liens dans les vues  Chaque route peut correspondre à une methode GET ou POST ou les deux 26
  • 27. Symfony Possède un système de cache  Pensez à vider le cache, des fois il suffit de le faire pour votre code fonctionne correctement : php app/console cache:clear 27