Veille technologique Symfony 2

Documents pareils
Présentation de solutions de Progiciels de Gestion d'epn Forum des Usages Brest 2010

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

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

PHP 5.4 Développez un site web dynamique et interactif

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

contact@nqicorp.com - Web :

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

Introduction MOSS 2007

Comment développer et intégrer un module à PhpMyLab?

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

ECLIPSE ET PDT (Php development tools)

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

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

Installation locale de JOOMLA SEPIA

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

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

1. Installation du Module

SERVEUR DE MESSAGERIE

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

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

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Tutorial et Guide TeamViewer

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

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

InfraCenter Introduction

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

Vtiger CRM - Prestashop Connector

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

SUPPORT DE COURS / PHP PARTIE 3

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

Installation et prise en main

Manuel d'installation de Joomla 1.7

Comment mettre en ligne un site WordPress local

OMGL 6 Cahier des charges

Comment créer un site web Proxy gratuitement!

VTigerCRM. CRM : Logiciel de gestion des activités commerciales d'une (petite) entreprise

SQUID I- Squid, c'est quoi? II- Comment ca marche? III- Où trouver des informations?

Mise en place du Module Magento ShoppingFlux

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

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

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

Fais ton site internet toi-même

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

et Groupe Eyrolles, 2006, ISBN :

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

Rapport de stage Clément MOYSAN

Un serveur web, difficile?

Etude de cas : PGE JEE V2

SERVEUR DE MESSAGERIE

Le stockage local de données en HTML5

Mise en place Active Directory, DNS Mise en place Active directory, DNS sous Windows Serveur 2008 R2

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

AFTEC SIO 2. Christophe BOUTHIER Page 1

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP. 27 ans - 6 ans d'expérience

Projet Personnalisé Encadré PPE 2

Documentation de conception

TRUECRYPT SUR CLEF USB ( Par Sébastien Maisse 09/12/2007 )

Formation en Logiciels Libres. Fiche d inscription

Drupal, pour quel usage? Comment se positionne Drupal? Les fonctionnalités de Drupal et de son écosystème. L'architecture technique et logicielle Le

Conception de sites web marchands: TP 1

Préparer la synchronisation d'annuaires

TD/TP 1 Introduction au SDK d Android

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.

Créer un sondage en ligne

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

KWISATZ MODULE PRESTASHOP

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Sage CRM. 7.2 Guide de Portail Client

Documentation Utilisateur/Développeur. Client de Monitoring CamTrace

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

Installation d'un serveur DHCP sous Windows 2000 Serveur

Espace numérique de travail collaboratif

Programme ASI Développeur

Architecture de la plateforme SBC

PROCEDURE D'INSTALLATION OPENREPORTS

TAGREROUT Seyf Allah TMRIM

Nouveautés joomla 3 1/14

Tutoriel d'utilisation du logiciel Thunderbird version 2.0

Date : NOM Prénom : TP n /5 DISTANT : CONCEPTS ET DIFFÉRENCES

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

TD séance n 2c Mise à jour des Systèmes

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Utilisation de GalaxShare

TABLE DES MATIERES...

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

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

inviu routes Installation et création d'un ENAiKOON ID

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Hébergement de site web Damien Nouvel

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

Transcription:

Veille technologique Symfony 2 Introduction : Symfony2 est un Framework PHP en MVC qui a pour objectif d'accélérer les développements. Il impose également un certain nombre de bonne pratique à respecter afin d'harmoniser la structure de vos projets en équipe, en facilitant donc l'implémentation de fonctionnalité ou la maintenance du site. Pourquoi utiliser symfony2? Symfony2 comporte un certain nombre de librairies de base qui permette une simplification du code à l'aide de couches d'abstractions entre les différents éléments de votre application. Peu importe le type de base de donnée sur lequel vous voulez implémenter votre application, Symfony2 utilise Doctrine, un ORM et PDO qui possède les drivers des bases de données actuelles du marché. Symfony gère aussi automatiquement la mise en cache, la gestion de formulaire avec validation CSRF, les utilisateurs et leurs sécurités et permissions, le debug avec un profiler et un debugger très puissant, les internationalisations de site, les moteurs de Template. Enfin un bon nombre d'outils qu'il serait long de développer mais que symfony2 met à notre disposition de manière transparente. Et enfin la communauté Symfony développe et partage en open source un certain nombre de module/plugin/bundle que vous pourrez utiliser (et même contribuer si vous le souhaitez) aisément sans avoir à recoder la fonctionnalité, notamment FOS User Bundle qui permet la gestion de tous les utilisateurs seulement à l'aide de ce bundle (création de compte/ connexion sécurisé / activation de compte / réinitialisation de mot de passe et bien d'autre fonctionnalité très utile). Installation de Symfony2? Pour installer Symfony2, vous devez avoir un environnement de développement fonctionnel. Vous devez aussi configurer la variable d'environnement PATH si vous êtes sous Windows. Ensuite vous devez télécharger le fichier installeur grâce à la ligne de commande suivante : Enfin vous devez créer votre projet à l'aide de la ligne de commande suivante : Projet Symfony3 : php symfony new my_project Projet Symfony2 : php symfony new my_project 2.8 (LTS jusqu'en Nov 2018) Vous aurez alors votre projet Symfony prêt à être exploité!

Architecture de Symfony2 : Comme expliqué dans l'introduction, Symfony impose un certain nombre de bonne pratique. Premier dossier du framework, le dossier app : Ici sera stockée toute la configuration de notre projet. On peut voir un dossier configuration qui permet de définir différente variable globale que nous allons utiliser dans notre application. Vous pouvez créer vos propres fichiers de configuration yml et utiliser les fichiers existants pour configurer votre sécurité ou votre base de données... Aussi un dossier ressource est disponible, il permet de stocker des données que l'on voudra réutiliser dans notre application, comme des layouts de base (header/footer?) ou encore des modules de navigation. Enfin diffèrent fichier sont disponible à la racine du dossier app, notamment le plus important, AppKernel.php, qui permet le chargement de notre configuration et de nos bundles au lancement de l'application. Ce dossier est commun à tous les bundles et sert à faire les liens entre eux pour former une seule application. Il nous arrivera d'écrire et de configurer notre application ici mais seulement ce qui est nécessaire à l'ensemble de l'application, sinon il est plus pertinent de coder dans vos bundles directement. Deuxième dossier du framework, le dossier vendor : Les vendors sont des librairies externes à votre projet qui mette donc à disposition un ensemble de fonction, de classe regroupé. L'avantage d'utiliser un tel système est la possibilité de mettre en jour les dépendances à l'aide de Composer. La configuration des librairies nécessaires ce trouve dans le fichier composer.json. Troisième dossier du framework, le dossier web : Ce répertoire est la partie publique de votre site web Il contient des ressources publiques telle que des fichiers js, css, images. Les ressources essentielles au fonctionnement des bundles sont dans le répertoire bundle et sont généré de façons automatiques. Enfin les fichiers app.php et app_dev.php sont les points d'entrée de l'application. C'est vers eux que le serveur nous redirige pour traiter toutes les requêtes et envoyer la réponse au client. Quatrième dossier du framework, le dossier src : C'est ici que l'on codera notre application découpée en plusieurs bundles, avec notre logique métier et des "plugins" pour le fonctionnement du site (forum, blog, espace utilisateur, et bien d'autres modules). Voilà l'essentiel de l'architecture de base de Symfony2. Nous verrons prochainement l'architecture des bundles et les règles de nommage.

Le fonctionnement fondamental de Symfony2 : Pour mieux comprendre le fonctionnement du bundle, il est intéressant d'avoir quelques notions sur le fonctionnement de Symfony2. Symfony2 fonctionne à l'aide d'un fichier PHP qui reçoit toutes les requêtes du serveur et qui les traites à l'aide des standards de la http Fundation. A l'aide de ces librairies, Symfony2 abstrait un grand nombre de choses et fourni des méthodes pour exploiter les requêtes de l'utilisateur, notamment l'url demandée et les paramètres passés. Notre premier Bundle : C'est au travers de ce chapitre que nous verrons les principales fonctions que l'on doit coder dans un bundle, comment s'organise le code dans notre arborescence, les règles de nommage et les fichiers nécessaires. Il faut garder à l'esprit qu'un bundle est autonome, et qu'il a une configuration pour fonctionner avec d'autres bundles. Un bundle contient au minimum des contrôleurs, des routes, des vues, et des informations de configuration. Mais il peut contenir bien plus, comme des entités, des repositories, des forms, des ressources publiques, des fixtures Dans cet exemple, ce bundle sert à afficher des pages web simples dans un Template de votre choix, le tout sur votre base de données. Grâce à l'arborescence et les règles de nommages Symfony2, vous pouvez comprendre quels fichiers servent à quelle fonction. Nous nous intéresserons au contenu de ces fichiers dans un second temps.

Le point de départ est le fichier routing.yml qui sera chargé dans notre fichier routing.yml dans le dossier app/config et l'instanciation du Bundle dans le app/appkernel.php. Il contient les routes auquel le bundle page peut répondre par une action d'un contrôleur. Comme on peut le voir, toutes ces routes ont un nom "page" un chemin "/page/" et un paramètre "{id}". On y fait correspondre un contrôleur avec la synthaxe NomBundle:NomControlleur:NomAction. Dans cet exemple on utilisera la fonction pageaction() qui demande un id en paramètre, qui est contenu dans le contrôleur PageController.php dans le bundle PageBundle. Et c'est tout! Voilà comment gérer une requête utilisateur. Ensuite il faudra voir plus en détail le contenu de la méthode pour comprendre le fonctionnement du site, mais c'est la méthode pageaction($id) contenu dans le contrôleur PageController.php du PageBundle qui recevra tous les objet requête lorsque l'utilisateur enverra une requête vers /page/id. Cette méthode ira donc rechercher la page dans une base de donnée par exemple et renverra une vue de la page (Render). On pourrait aussi choisir de rediriger l'utilisateur vers une route (RedirectResponse) ou une action d'un autre contrôleur (forwarding) s'il n'a pas besoin de généré du HTML.

La surcharge de Bundle : Sous symfony, les bundles sont exportables et la communauté de symfony partage des bundles en open-source. C'est le cas de FOS User Bundle par exemple, qui est très célèbre et qui permet une gestion des utilisateurs, des profils, de l'activation de compte, changement/oublie de mot de passe, et beaucoup d'autre fonctionnalité. Il existe plusieurs manière d'installer un bundle externe, vous pouvez utiliser composer, ou installer de manière manuelle. Pour la méthode manuelle, cela consiste à télécharger le Vendor que l'on placera dans le dossier correspondant, puis charger la librairie dans l'auto-load et dans le kernel, et importer la route du bundle dans le fichier route principal (en le préfixant si besoin). Prenons un exemple pour illustrer la surcharge : Voici les lignes à ajouter a symfony pour charger le bundle que vous avez placez dans le dossier vendor au préalable. Autoload.php : AppKernel.php : Routing.yml : Ensuite, vous créer votre bundle qui va surcharger le bundle que vous venez d'installer, et dans l'entité Utilisateur vous allez l'extend à la classe abstraite du bundle. Et voilà, le tour est joué! Il ne vous reste plus qu'à surcharger les vues dans le dossier correspondant au bundle, pour FOSUser ce sera app/ressources/fosuserbundle