Vous êtes sur la page 1sur 46

N.

ZIDANE
Rencontrez Symfony 2

N. ZIDANE
Histoire

Symfony est un Framework MVC libre écrit en PHP 5. En


tant que Framework, il facilite et accélère le développement
de sites et d'applications Internet et Intranet.

1 2

N. ZIDANE
sf

Développeur : Sensio Labs


Première version : 18 octobre 2005
Dernière version : 2.0.10 (06 février 2012)
Écrit en : PHP
Environnement : Multi plate-forme
Langue : Multilingue
Type : Framework
Licence : MIT
Site web : www.symfony-project.org / www.symfony.com

N. ZIDANE
Sf expliqué à mon patron

Symfony 2 est un framework PHP - un Framework


pour développer des sites Web ou des applications écrites en
PHP.
Un Framework, un CMS (Content Management
System), et une solution packagée ne répondent pas
aux mêmes besoins ou exigent le même investissement et /
ou la même expertise.

N. ZIDANE
Sf expliqué à mon patron

Avec le logiciel emballé, c'est simple: en dehors


de changer quelques paramètres, les entreprises doivent se
contenter des fonctionnalités disponibles, qui peuvent être
plus limité que les besoins définis initialement, ou l'inverse.

N. ZIDANE
Sf expliqué à mon patron

Un CMS et de ses modules peuvent être utilisés pour la


conception de sites et d'applications qui sont assez
proches aux besoins des entreprises, aussi longtemps que les
modules nécessaires sont disponibles et entretenu!

N. ZIDANE
Sf expliqué à mon patron

Un Framework offre toute la souplesse d'un


développement personnalisé et peut être utilisé pour
concevoir une application qui répond parfaitement
aux besoins exprimés. Il, cependant, nécessite le
développement, l'intégration et la maintenance.

N. ZIDANE
Sf expliqué à mon patron

Symfony: Outils de développement

Développement standard ou développement à l'aide d'un


Framework, une application PHP est une application PHP
et dans les deux cas, il exige une expertise technique.

Néanmoins, la présence d'un Framework garantit que la


demande est conforme avec les règles de l'industrie, est bien
structuré, facile à maintenir et évolutive.

N. ZIDANE
Sf expliqué à mon patron

Il permet aussi d'économiser du temps aux


développeurs, en réutilisant des modules génériques, de
sorte qu'ils puissent se concentrer sur les
fonctionnalités métier spécifiques.

N. ZIDANE
Pourquoi Symfony?

Symfony est un fait internationalement reconnue,


Environnement de développement stable.
Symfony est soutenu par SensioLabs, une société avec plus de
13 ans d'expérience en développement web, et par une
communauté internationale dynamique, qui vous
garantissent sa longévité.

N. ZIDANE
Pourquoi Symfony?

Un innovateur et facile à utiliser grâce à l'intégration


de l'environnement de travail des solutions créées dans
d'autres environnements tels que l'injection de
dépendance (prise à partir de Java)
Des solutions spécifiquement développées telles que le web
debug toolbar ou le profileur Web

N. ZIDANE
Pourquoi Symfony?

Enfin, en adoptant des normes de facto, Symfony ne vous


confine pas à son environnement, mais vous permet de
choisir les composants logiciels que vous souhaitez utiliser.

N. ZIDANE
Symfony expliqué à un administrateur système

Symfony ne nécessite que deux dossiers d'écriture, qui peuvent


être entièrement configurés pour s'adapter à la politique de
l'entreprise de sécurité mis en place.

Symfony facilite également l'accumulation des demandes à être


hébergés, par exemple en stockant les sessions en bases de
données ou la mise en œuvre HTTP standard
pour gérer nativement des accélérateurs site comme Varnish.

Symfony simplifie le travail de l'administrateur


système.

N. ZIDANE
Symfony expliqué à un Chef de Projet

Un guide de développement réel :


le Framework Symfony donne à tous les membres de
l'équipe une référence partagée pour la cohérence du projet: il
sera beaucoup plus facile à comprendre et à maintenir dans
le long terme.

Un projet rapide :
Avec Symfony, vous réutilisez des composants génériques,
qui n'ont pas de valeur ajoutée pour répondre aux
besoins spécifiques de votre entreprise.

N. ZIDANE
Qu'est-ce que Symfony 2?

Symfony est un Framework PHP, une philosophie, et une


communauté - qui travaillent ensemble en harmonie.
Un groupe de composants PHP autonomes

N. ZIDANE
Problèmes résolus

Data persistence Routing


Security File+Dir Traversing
Forms Translation
Validation Dependency Injection
Templating Image Manipulation
Autoloading Console Tasks
Logging Caching
Asset Management

N. ZIDANE
N. ZIDANE
Pourquoi Symfony?

A titre de comparaison, Symfony 2.0 est d'environ 3 fois


plus rapide que la version 1.4 de Symfony 1 ou Zend
Framework 1.10, tout en prenant 2 fois moins de mémoire.

http://symfony.com/six-good-technical-reasons

N. ZIDANE
Pourquoi Symfony?

“Symfony is an extremely full featured,


modular, and crazy fast framework.”

Steve Francia
Vice President of Engineering at OpenSky

N. ZIDANE
Pourquoi Symfony?

Une énorme communauté des développeurs

167 core contributors


87 documentation contributors
1114 open source Symfony bundles
74 open source Symfony projects

N. ZIDANE
N. ZIDANE Manipulez Symfony
Etape 1: Télécharger symfony

N. ZIDANE Manipulez Symfony


Sous Windows, ouvrez votre console et exécutez les commandes
suivantes :

php -r "readfile('https://symfony.com/installer');" > symfony

Déplacez ensuite le fichier symfony téléchargé dans un dossier indiqué


dans la variable d'environnement PATH ou dans votre dossier de projets :

Par exemple, si WAMP64 est utilisé et on veut utiliser le dossier zidane.


c:\>move symfony c:\wamp64\www\zidane
alors, exécutez la commande comme ceci
c:\>cd c:\wamp64\www\zidane
c:\wamp64\www\zidane > php symfony
Etape 2: créer un dossier ( je l’ai nommé zidane
dans www) , dans lequel vous copiez le fichier
télécharger qui doit avoir les dossier suivants:

N. ZIDANE Manipulez Symfony


Etape 3: exécuter le fichier http://localhost/zidane/web/config.php

Cliquez ici

N. ZIDANE Manipulez Symfony


L’application est prête à l’emploi

N. ZIDANE
Configuration

SGBD

Nom de la base de données

Utilisateur MySQL

Clé de sécurité

N. ZIDANE
La notion de bundle

Dans l'univers de Symfony, un morceau d'application est


appelé Bundle.
En fait, cela correspond à une brique logicielle, c'est-à-
dire un ensemble cohérent pour une fonctionnalité donnée.

Par exemple, pour un site internet, on peut imaginer


plusieurs bundles : un bundle actualité, un bundle forum, un
bundle newsletter, un bundle utilisateurs, etc.
Chaque bundle peut être indépendant, ou bien
fonctionner avec d'autres bundles (par exemple le forum et
ses utilisateurs qui vont poster des messages).

N. ZIDANE
La notion de namespace

Dans Symfony, toutes les classes sont référencées dans


des namespace comme par exemple um5a\CmsBundle\Entity
qui pourrait référencer une entité (classe métier/modèle) de
notre Bundle Cms (CmsBundle) créé par um5a.

Un namespace est toujours composé de la même façon:


Le nom du créateur/fournisseur (vendor segment en anglais).
Dans notre exemple um5a.
Un ou plusieurs répertoire vers le fichier référencé, dans notre
exemple CmsBundle\Entity.

N. ZIDANE
La notion de namespace

Ainsi chaque classe devra spécifiée à quel namespace elle


appartient en ajoutant la ligne suivante en début de page:
namespace VotreOrganisation\VotreBundle\Repertoires;

Et il sera ensuite possible d'utiliser les classes d'un namespace


dans une autre classe, ainsi:

use VotreOrganisation\VotreBundle\Repertoires;

Les namespaces permettent l'interopérabilité de plusieurs


Bundle développés par différentes personnes. Ils permettent
de nommer explicitement ses classes de façon quasi uniques.

N. ZIDANE
Console sf
L'un des objectifs
des Frameworks est de
gagner du temps, dans
cette optique, les
auteurs de Symfony ont
mis au point un
ensemble de
commandes exécutées
en ligne de commande.

C:>cd wamp64\www\zidane

Accéder au chemin
d’installation de sf

N. ZIDANE
Console sf
C:\wamp64\www\zidane\ifiag>php app/console
Pour voir toutes les
commandes prise en
charge par la
console de sf

Si la commande php n'est pas reconnue, il vous l'ajouter dans la variable d'environnement Path.

N. ZIDANE
Le générateur de bundle
C:\wamp64\www\zidane>php app/console generate:bundle

N. ZIDANE
Le générateur de bundle

Vous aurez des proposition entre [ ], entrer pour valider.

N. ZIDANE
Le générateur de bundle

Le générateur vous demande alors de renseigner plusieurs options :


Bundle Name : ZidaneBundle
Target Directory : src
Configuration format : yml

YAML, acronyme de Yet Another Markup Language dans sa


version 1.0 il devient l'acronyme récursif de YAML Ain't Markup
Language (en français YAML n’est pas un langage de balisage)
dans sa version 1.1, est un format de représentation de
données par sérialisation Unicode.

N. ZIDANE
Le générateur de bundle

N. ZIDANE
AppKernel
Un Bundle doit toujours être référencé dans AppKernel.php
pour pouvoir être utilisé dans notre projet. Vérifiez que vous avez
bien la ligne suivante dans votre fichier app/AppKernel.php.

N. ZIDANE
Exécution

N. ZIDANE
Les 3 étapes pour accéder à une page

/bonjour/Zidane

Etape 1: Symfony fait la correspondance entre URL et la route


Etape 2 : Symfony execute le contrôleur de la route
Etape 3 : le contrôleur retourne à Symfony un objet de type Response

<h1> Salut Zidane! h1>

N. ZIDANE
MVC

N. ZIDANE
Vue d’ensemble

Navigateur

Vue

route

Contrôleur

N. ZIDANE
Correspondance entre le routage et le contrôleur

N. ZIDANE
Routage

Le rôle du routage est, à partir d'une URL, de déterminer


quel contrôleur appeler et avec quels arguments.
Cela permet de configurer son application pour avoir de très
belles URL, ce qui est important pour le référencement et même
pour le confort des visiteurs.
l'URL /article/le-systeme-de-route est bien plus mieux
que index.php?controlleur=article&methode=voir&id=5

N. ZIDANE
La couche routing

La couche de routage est un outil qui traduit l'adresse


URL entrant pour acheminer la demande à un contrôleur spécifique à
exécuter.
La couche routing
Schéma du routage dans Sf

app\config\routing.yml inclut src\ZidaneBundle\Resources\config\routing.yml

Vous aimerez peut-être aussi