SlideShare une entreprise Scribd logo
1
Symfony 2.0

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

2
3

Chapitre 1 :
Vue d'ensemble de Symfony 2
Symfony 2, un Framework
PHP

4



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é





Télécharger Symfony 2.2




5

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 :

1.

php bin/vendors install

Version simple, avec les vendors, pour avoir toutes les librairies
incluses
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 »

6
Première Installation 2/3


7

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
Première Installation 3/3


8

C‟est bon ! Vous pouvez maintenant vous connecter à votre
premier application Symfony 2 :
http://localhost/symfony/web/app_dev.php/
Arborescence des fichiers


9

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
La notion de « Bundle »


Un bundle est une brique de votre application, permet de
regrouper toutes les ressources



11

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/
Créer un « Bundle »


Dans la racine de Symfony, taper la commande :

php app/console generate:bundle
Ensuite suivre les étapes sur la consoles

12
Créer un « Bundle »
Générer un bundle en ligne de commande

13
Structure d‟un bundle

14



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.
Bundle :
Controller et View

15

 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
Actions et Vues

16
Manipuler les variables
envoyées en POST et/ou GET

17



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')
La configuration : Système
d‟annotation

18



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 ?
Commentaire du genre :
@MotCles(Valeur2, Valeur2…)
Les Routes en Symfony

19



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
Les routes :
Règles 1/6


Declarer une route simple pour un contrôleur

20
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}

21
Les routes :
Règles 3/6


Il est aussi possible de définir plusieurs URL‟s au même
controleur

22
Les routes :
Règles 4/6


23

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
Les routes :
Règles 5/6


Définir pour chaque contrôleur un prefix d‟url

Lors de l’activation

Au niveau du fichier

24
Les routes :
Règles 6/6

25



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
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

26

Contenu connexe

Tendances

Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
ENSET, Université Hassan II Casablanca
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation Symfony
Jeremy Gachet
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
ENSET, Université Hassan II Casablanca
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
Jean David Olekhnovitch
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Mehdi Hamime
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
Abdoulaye Dieng
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
Olivier Le Goaër
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
Lilia Sfaxi
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
Abdoulaye Dieng
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
Lilia Sfaxi
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
Kristen Le Liboux
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
Heithem Abbes
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
Jean-Baptiste Vigneron
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
ENSET, Université Hassan II Casablanca
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
Georges Amichia
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi
 

Tendances (20)

Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation Symfony
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
UML Diagrammes Statiques
UML Diagrammes StatiquesUML Diagrammes Statiques
UML Diagrammes Statiques
 

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 2
Abdelkader Rhouati
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en Twig
Abdelkader Rhouati
 
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
Abdelkader Rhouati
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2Ahmed ABATAL
 
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
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
Noel GUILBERT
 
Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 
Symfony2 Presentation
Symfony2 PresentationSymfony2 Presentation
Symfony2 Presentation
yllieth
 
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
Abdelkader 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é
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
Noel GUILBERT
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
Hugo Hamon
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHP
Pierre MARTIN
 
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
Alphorm
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
 
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
 
Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest Ahmed Ghali
 
Dependency Injection Smells
Dependency Injection SmellsDependency Injection Smells
Dependency Injection Smells
Matthias Noback
 
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
Mehdi EL KRARI
 
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
Marouan OMEZZINE
 

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
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en Twig
 
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
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2
 
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
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
 
Symfony2 Presentation
Symfony2 PresentationSymfony2 Presentation
Symfony2 Presentation
 
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
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHP
 
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
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
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
 
Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest Symfony2 & l'architecture Rest
Symfony2 & l'architecture Rest
 
Dependency Injection Smells
Dependency Injection SmellsDependency Injection Smells
Dependency Injection Smells
 
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
 
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
 

Similaire à Symfony 2 : chapitre 1 - Présentation Générale

Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
Marwa OUNALLI
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
Amir Souissi
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony
Imad ZAIRIG
 
Hady bah l3
Hady bah l3Hady bah l3
Hady bah l3
MamadouHadyBah
 
Le Symfony Maker Bundle, c’est bien, mais ….
Le Symfony Maker Bundle, c’est bien, mais ….Le Symfony Maker Bundle, c’est bien, mais ….
Le Symfony Maker Bundle, c’est bien, mais ….
AurlienTournayre
 
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
CocoaHeads France
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
ODC Orange Developer Center
 
#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
 
retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2
Saad Tazi
 
Cologne Web Performance Optimization Group Web - Varnish
Cologne Web Performance Optimization Group Web - VarnishCologne Web Performance Optimization Group Web - Varnish
Cologne Web Performance Optimization Group Web - VarnishD
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overview
SymfonyMu
 
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
Thierry Gayet
 
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
Jean-Marc Fontaine
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
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
Jean-Marc Fontaine
 
Présentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de SymfonyPrésentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de Symfony
Raphaël Kueny
 
À La découverte de flow3 - t3con12
À La découverte de flow3 -  t3con12À La découverte de flow3 -  t3con12
À La découverte de flow3 - t3con12mguermazi
 
Symfony 4 2019
Symfony 4 2019Symfony 4 2019
Symfony 4 2019
Eric Para
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
Jonathan Bonzy
 

Similaire à Symfony 2 : chapitre 1 - Présentation Générale (20)

Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony
 
Hady bah l3
Hady bah l3Hady bah l3
Hady bah l3
 
Le Symfony Maker Bundle, c’est bien, mais ….
Le Symfony Maker Bundle, c’est bien, mais ….Le Symfony Maker Bundle, c’est bien, mais ….
Le Symfony Maker Bundle, c’est bien, mais ….
 
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
 
Framework php « Codeignitor »
Framework php « Codeignitor » Framework php « Codeignitor »
Framework php « Codeignitor »
 
#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
 
retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2retour sur confoo2011 et Symfony2
retour sur confoo2011 et Symfony2
 
Cologne Web Performance Optimization Group Web - Varnish
Cologne Web Performance Optimization Group Web - VarnishCologne Web Performance Optimization Group Web - Varnish
Cologne Web Performance Optimization Group Web - Varnish
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overview
 
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
 
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
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
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
 
Présentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de SymfonyPrésentation de EasyAdmin, le bundle d'admin de Symfony
Présentation de EasyAdmin, le bundle d'admin de Symfony
 
À La découverte de flow3 - t3con12
À La découverte de flow3 -  t3con12À La découverte de flow3 -  t3con12
À La découverte de flow3 - t3con12
 
Symfony 4 2019
Symfony 4 2019Symfony 4 2019
Symfony 4 2019
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 

Plus de Abdelkader Rhouati

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
Abdelkader Rhouati
 
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
Abdelkader Rhouati
 
Comparaison des CMS
Comparaison des CMSComparaison des CMS
Comparaison des CMS
Abdelkader Rhouati
 
برنامج جمعية بسمة أمل بوجدة لسنة 2013
برنامج جمعية بسمة أمل بوجدة لسنة 2013برنامج جمعية بسمة أمل بوجدة لسنة 2013
برنامج جمعية بسمة أمل بوجدة لسنة 2013Abdelkader Rhouati
 
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 arabeAbdelkader Rhouati
 
Réussir sa carrière
Réussir sa carrièreRéussir sa carrière
Réussir sa carrière
Abdelkader Rhouati
 

Plus de 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
 

Dernier

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 

Dernier (6)

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 

Symfony 2 : chapitre 1 - Présentation Générale

  • 1. 1
  • 3. 3 Chapitre 1 : Vue d'ensemble de Symfony 2
  • 4. Symfony 2, un Framework PHP 4  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é    
  • 5. Télécharger Symfony 2.2   5 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 : 1. php bin/vendors install 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 » 6
  • 7. Première Installation 2/3  7 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  8 C‟est bon ! Vous pouvez maintenant vous connecter à votre premier application Symfony 2 : http://localhost/symfony/web/app_dev.php/
  • 9. Arborescence des fichiers  9 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)
  • 11. La notion de « Bundle »  Un bundle est une brique de votre application, permet de regrouper toutes les ressources  11 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 12
  • 13. Créer un « Bundle » Générer un bundle en ligne de commande 13
  • 14. Structure d‟un bundle 14  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 15  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.
  • 17. Manipuler les variables envoyées en POST et/ou GET 17  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 18  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 ? Commentaire du genre : @MotCles(Valeur2, Valeur2…)
  • 19. Les Routes en Symfony 19  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 20
  • 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} 21
  • 22. Les routes : Règles 3/6  Il est aussi possible de définir plusieurs URL‟s au même controleur 22
  • 23. Les routes : Règles 4/6  23 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 24
  • 25. Les routes : Règles 6/6 25  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 26