Symfony Live 2009 Etude de Cas : Mise en place d un générateur de contenu et de flux XML à l aide des «tasks»
|
|
- Jean-Bernard Leduc
- il y a 8 ans
- Total affichages :
Transcription
1 Symfony Live 2009 Etude de Cas : Mise en place d un générateur de contenu et de flux XML à l aide des «tasks» sflive Event 09 [ The Shopper Activation Agency 1 ]
2 PRESENTATION sflive Event 09 2
3 A propos de moi Développeur php depuis 2000 et particulièrement sur symfony depuis un peu plus de 2 ans. Cartesis de 1997 à 2006 en tant que Web-manager. Chef de projet chez Logica de 2006 à 2008 Chef de projet chez Business Lab depuis Octobre 2008 sflive Event 09 3
4 A propos de business Lab Une agence de communication, spécialisée sur le shopper mettant la créativité et l idée au cœur de son approche intégrée. sflive Event 09 4
5 NOTRE MISSSION Comprendre l ensemble des séquences du processus d achat afin de créer les conditions du passage à l acte sur les différents points de contact et d expérience de nos marques. sflive Event 09 5
6 Clients actifs Grande consommation Distribution Tourisme / Loisirs Services Media / Culture Divertissement Industries / Télécoms
7 LE PROJET sflive Event 09 7
8 A propos du projet LeParisien.fr souhaitait mettre en place une chaine cinéma afin de remplacer une application acquise marque blanche. Ils souhaitaient également offrir un service d informations localisées à leurs visiteurs. sflive Event 09 8
9 A propos du projet 4 flux Xml sont envoyés par un prestataire tout les mardi : Un flux listant les salles de France (env noeuds) Un flux listant les films à l affiche pour la semaine (env noeuds) Un flux listant les horaires de projections pour la semaine. (env noeuds) un flux listant le top 10 des films de la semaine (60 noeuds) OBJECTIF : générer les (env) fichiers nécessaires à l application à partir de ces 4 fichiers. sflive Event 09 9
10 Périmètre projet Pré-requis du client Générer des pages en php «statiques» au sein d une arborescence logique. («include» et «file_exists» sont les seuls traitements php autorisés sur les frontaux). Un temps de génération < 3minutes. Système de log à chaque étapes du batch Colonne de droite et éléments contextuels de l application re-générés toutes les heures et localisés par département. Génération automatique (CRON) (pas besoin de restitution au niveau d un navigateur web dans un premier temps) Simplifier l accès à l application pour l équipe en charge de la maintenance. sflive Event 09 10
11 Résultat sflive Event 09 11
12 L équipe Deux webdesigners (sans compétence symfony) Un développeur (php/symfony) Un chef de projet technique Un chef de projet fonctionnel sflive Event 09 12
13 Objectifs Notre objectif était de profiter au maximum de l architecture MVC de symfony et des outils du framework (Fichiers de configuration, Helpers, Routing, Partials) bien que l application finale ne soit pas gérée par le framework lui -même. Paralléliser au maximum le travail des développeurs et des webdesigners sflive Event 09 13
14 sfconfig::get( foo') Route get_partial( path ) sflive Event 09 14
15 L APPLICATION FRONT sflive Event 09 15
16 Mise en place de l application frontend php symfony generate:project cinema php symfony generate:app front sflive Event 09 16
17 Configuration app.yml routing.yml sflive Event 09 17
18 Intégration des templates Les webdesigner ont été en mesure d intégrer leur travail en parallèle du travail fait sur les tâches Normes Imposées : DRY (Don t Repeat Yourself) Mettre en place un système de «Partial» intelligent sflive Event 09 18
19 LE GENERATEUR sflive Event 09 19
20 fichiers à générer Des Des portions fichiers Les de XML pages code ciblés du HTML et site consolidés réutilisables sflive Event 09 20
21 Refactoring des XMLs 2 Objectifs : Créer des flux XML ciblés pour pouvoir les utiliser dans d autres applications. Limiter les temps de traitements (de 1h45 à 5 mins) L application va donc créer : Des flux contenant toutes les projections pour un films. Des flux contenant toutes les projections pour une salle. Des flux contenant toute les projections pour une région donnée. Des flux contenant toute les projections pour un département donné. Un flux contenant toutes les projections pour un code postal donné. sflive Event 09 21
22 Génération de partials Pouvoir réutiliser des bouts de «code» lors de la génération des pages du site. Pouvoir faire des «include» de ces bouts de code dans au niveau du site éditorial, du moteur de recherche et des pages du site. sflive Event 09 22
23 Mise en place des tasks php symfony generate:task batchcinecleanall php symfony generate:task batchcinecleanpage php symfony generate:task batchcinecleanpartial php symfony generate:task batchcinecleanxml php symfony generate:task batchcine php symfony generate:task batchcinerightblock sflive Event 09 23
24 Mise en place des tasks php symfony sflive Event 09 24
25 «Tasks» utiles au développement php symfony generate:task batchcinecleanall php symfony generate:task batchcinecleanpage php symfony generate:task batchcinecleanpartial php symfony generate:task batchcinecleanxml php symfony generate:task batchcine php symfony generate:task batchcinerightblock sflive Event 09 25
26 «Connection» des tâches à l application front sflive Event 09 26
27 Gestion des fichiers (récupération / Suppression) lib/task/batchcinecleanxml.class.php sflive Event 09 27
28 Gestion des fichiers (récupération / Suppression) lib/task/batchcinecleanpage.class.php sflive Event 09 28
29 Gestion des fichiers (récupération / Suppression) lib/task/batchcinecleanall.class.php sflive Event 09 29
30 Mise en Place des tasks php symfony generate:task batchcinecleanall php symfony generate:task batchcinecleanpage php symfony generate:task batchcinecleanpartial php symfony generate:task batchcinecleanxml php symfony generate:task batchcine php symfony generate:task batchcinerightblock sflive Event 09 30
31 Execute sflive Event 09 31
32 ExecuteBatchClean sflive Event 09 32
33 Principe de génération Dans apps/front/templates/_meilleursfilms.php Dans apps/front/config/routing.yml sflive Event 09 33
34 Questions? Gregory SCHURGAST Mer Business Lab sflive Event 09 [ The Shopper Activation Agency 34 ]