Vous êtes sur la page 1sur 17

Présenté par : Encadré par :

Taha ZOUHAIR Pr. Said BENHLIMA


Noureddine EL AMRAOUI
Plan de l’exposé

I. Introduction
II. Qu’est ce qu’un framework PHP ?
III. L’architecture MVC
IV. Mise en route
V. Les bundles
VI. Les pages
VII. Les templates
VIII. Doctrine
IX. Le profiler
X. Démonstration
XI. Conclusion
• Symfony est un framework PHP basé sur l’architecture
MVC.
• Il a été créé en 2005 par une agence web Française qui
s’appelle Sensio Labs, pour leurs propres besoins.
• Il sera rendu libre plus tard pour la communauté PHP.
• La dernière version stable est PHP 2.0.12, sortie en 19 Mars
2012.
• Symfony2 est exécutée sur PHP5 et requiert une version
supérieure à 5.3.2
• Une documentation très riche, et une communauté très
active
• Cadre de travail, imposant une certaine architecture à
respecter.
• Facilite le travail du développeur web, en offrant la gestion
des erreurs, la réutilisabilité du code.
• Facilite la maintenabilité de l’application en séparant ses
différentes parties.
• Il existe plusieurs d’autres frameworks PHP comme Zend,
CodeIgniter et CakePHP
Vue

Contrôleur

Modèle
• Une application Symfony2 se constitue des dossiers suivants :
 app/ : Configuration de l’application
 src/ : Code PHP du projet ( Namespace / Bundle )
 vendor/ : Dépendance de parties tierces
 web/ : Dossier racine du projet
• Il faut copier le contenu du dossier Symfony2 dans la racine
du serveur /www ou un sous-dossier de la racine
• Vérifiez les éventuels prérequis de l’application, en exécutant
le script app/check.php
• Si la page welcome s’affiche
http://localhost/Symfony/web/app_dev.php/
L’installation s’est bien passé et vous pouvez désormais
commencer à travailler
• C’est un ensemble de fichiers structurés dans un seul dossier,
assurant la même fonctionnalité. Exemple : BlogBundle,
ForumBundle.
• Les fichiers peuvent être des : Classes PHP, Templates, Feuilles de
style, Fichiers JavaScript ou tout autre fichier relatif à la
fonctionnalité du bundle.
• Il existe plusieurs bundles Open-Source faits par la communauté de
Symfony.
• On peut générer un bundle via cette commande :
php console generate:bundle --namespace=Exemple/ExempleBundle --format=yml

• Une bonne pratique serait de mettre Bundle comme suffixe au nom


• Le bundle est créé dans le dossier src/ de l’application.
• On regroupe un ensemble de bundles dans un namespace.
• L’ensemble des bundles d’une application peuvent être activés ou
désactivés, selon le besoin, depuis le fichier app/AppKernel.php
• La création des pages s’effectue en deux étapes :
 La création de la route : Resources\config\routing.yml
ExempleExempleBundle_homepage:
pattern: /hello/{name}
defaults: {
_controller: ExempleExempleBundle:Default:index
}

 La création du contrôleur : Controller\DefaultController.php


namespace Exemple\ExempleBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller


{
public function indexAction($name)
{
return new Response('<html><body>Hello'.$name.'!</body></html>');
}
}
• La partie « vue » de l’architecture MVC.
• Contiennent du HTML, CSS et JS.
• Peuvent afficher des variables en provenance d’un
contrôleur.

public function indexAction($name)


{
$params = array(‘name’ => $name);
return $this->render('ExempleExempleBundle:Default:index.html.twig', $params);
}

Symfony\src\Exemple\ExempleBundle\Resources\views\Default\index.html.twig

{% extends "AcmeDemoBundle::layout.html.twig" %}

{% block title "Hello " ~ name %}

{% block content %}
<h1>Hello {{ name }} !</h1>
{% endblock %}
• Outil accessible en mode « dev » permettant d’analyser les
requêtes
• Pratique pour faire du débogage et pour améliorer les
performances
• Permettant de voir l’intégralité d’une requête en
commençant par les passages de paramètres GET/POST, en
passant par les Cookies/Sessions et l’affichage de tous les
paramètres du serveur, ainsi que leurs valeurs au moment du
traitement de la requête
• Partie « modèle » de l’architecture MVC
• Permet la persistance des données
• On initialise la base de données avec :
 php app/console doctrine:database:create
• On génère l’entité avec :
 php app/console doctrine:generate:entity --
entity="AcmeStoreBundle:Product" --
fields="name:string(255) price:float
description:text"
• A partir du mapping des entités que l’on a, on va pouvoir
générer les tables :
 php app/console doctrine:schema:update –force
• Pas d’intéraction directe avec la base de données
• Symfony2 est un Framework PHP qui facilite de façon
significative le travail du développeur
• Il permet une meilleure organisation, en adoptant
l’architecture MVC
• Le développement d’un projet web, devient plus simple et
plus rapide
• Gain de temps et d’argent

Vous aimerez peut-être aussi