SymfonyetSonataProject
chezCanal+
22
•  Sonata Project Lead dev
•  15% des installations de Symfony
•  Polyglot: Python, Go, Javascript,
Puppet, etc …
•  @t...
33
Canal+
Refonte de certains backoffices de gestion
de contenu:
•  8 applications dans un repo git
•  2 APIs : Une API in...
44
Structuredefichiers
adaptéeaubesoin
•  Chaque application doit pouvoir être isolée
•  Pas de dépendance entre applicati...
55
•  ./console app1 your:command
•  Un point d’entrée pour symfony
•  clear cache: rm –rf cache/* #win
•  Tests unitaires...
66
Symfony2écosystème
•  2550 bundles
•  FosRestBundle
•  FosUserBundle
•  Nelmio
•  LiipMonitor
•  Sonata’s Bundles
7
8
99
•  L’AdminBundle permet de gagner du temps
pour la création d’IHM standard
•  Permet d’inclure des fonctionnalités rich...
1010
•  Intégration des fonctionnalités de resize
dynamique de nginx => en c; en cache; ça
booste …
•  POC pour utiliser t...
1111
•  Création de blocs métier pour se connecter
aux web services existants
•  La complexité est cachée aux utilisateurs...
1212
•  RestFul API with JSON+HAL
•  HateosBundle: création de ressources HAL
à partir d’annotations
•  Il n’existe pas de...
13
Bref…
…ekinorecrute…
…LasuiteauPHPTOUR2015
http://www.afup.org/pages/phptourluxembourg2015/index.php
Prochain SlideShare
Chargement dans…5
×

Symfony et Sonata Project chez Canal+

2 258 vues

Publié le

L’usage de Symfony2, l’organisation du code et l’usage du projet Sonata chez Canal+ pour répondre aux enjeux de la refonte d’une partie de la plateforme web. La plateforme présente de nombreux challenges techniques : SDK, API privée, API publique restful+hal, création de contenus riches, huit applications différentes avec une base de code commune, etc. Comment il a été possible d’améliorer certaines parties de Sonata ainsi que l’approche choisie pour la création de certains composants transverses.

Publié dans : Internet
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 258
Sur SlideShare
0
Issues des intégrations
0
Intégrations
62
Actions
Partages
0
Téléchargements
15
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Symfony et Sonata Project chez Canal+

  1. 1. SymfonyetSonataProject chezCanal+
  2. 2. 22 •  Sonata Project Lead dev •  15% des installations de Symfony •  Polyglot: Python, Go, Javascript, Puppet, etc … •  @th0masr •  github.com/rande ThomasRabaix ArchitecteLogiciel ekino.
  3. 3. 33 Canal+ Refonte de certains backoffices de gestion de contenu: •  8 applications dans un repo git •  2 APIs : Une API interne et une API Publique •  1 SDK : pour consommer l’API publique
  4. 4. 44 Structuredefichiers adaptéeaubesoin •  Chaque application doit pouvoir être isolée •  Pas de dépendance entre applications •  Même base de code (Component) apps logs cache src/CanalPlus Component Bundle/App1Bundle app1_prod.log app1_prod app1 App1Kernel.php web config
  5. 5. 55 •  ./console app1 your:command •  Un point d’entrée pour symfony •  clear cache: rm –rf cache/* #win •  Tests unitaires sur l’ensemble du code des applications •  Réduction de la dette technique car les applications sont mises à jour à chaque évolution •  Makefile: « One tool to rule them all » •  Réalité des projets web: bower, npm, gulp, capistrano, scss, bash, pip, bundler, etc …. •  make install •  make update Structure de fichiers adaptés au besoin
  6. 6. 66 Symfony2écosystème •  2550 bundles •  FosRestBundle •  FosUserBundle •  Nelmio •  LiipMonitor •  Sonata’s Bundles
  7. 7. 7
  8. 8. 8
  9. 9. 99 •  L’AdminBundle permet de gagner du temps pour la création d’IHM standard •  Permet d’inclure des fonctionnalités riches grâce à ReactJS (ou autres solutions) •  Création d’un SonataRestAdminBundle pour administrer des API RestFul •  Une IHM unique pour croiser les données d’API ou d’une base de données •  Gestion des droits provenant de Symfony Sonata AdminBundle Le pivot de la l’administration des données •  Permet l’édition de contenus •  Gestion des règles métiers •  Gestion des rôles
  10. 10. 1010 •  Intégration des fonctionnalités de resize dynamique de nginx => en c; en cache; ça booste … •  POC pour utiliser thumbor pour le crop intelligent d’image •  Stockage des médias sur Amazon •  Budget is the limit Sonata MediaBundle L’agrégateur des sources multimédia •  Rajout d’un mode mosaïque •  Rajout d’une arborescence pour retrouver les médias facilement. •  Intégration de médias interne du SI Canal+ grâce à la création de « providers » spécifiques
  11. 11. 1111 •  Création de blocs métier pour se connecter aux web services existants •  La complexité est cachée aux utilisateurs. •  Intégration facile avec Akamai (CDN) •  Facilité grâce à Symfony et Sonata qui intègrent les notions de cache HTTP Sonata PageBundle L’intégrateur de flux pour des pages riches. •  Amélioration de l’ergonomie de l’administration d’une page •  « SharedBlock » réutilisation de blocs sur plusieurs pages.
  12. 12. 1212 •  RestFul API with JSON+HAL •  HateosBundle: création de ressources HAL à partir d’annotations •  Il n’existe pas de client pour consommer ces ressources •  Création d’un librairie: https://github.com/ekino/php-hal-client •  Permet de naviguer dans les réponses HAL •  Option pour intégrer JMS Serializer: •  Ressources => Objets Rest Json+Hal
  13. 13. 13 Bref… …ekinorecrute… …LasuiteauPHPTOUR2015 http://www.afup.org/pages/phptourluxembourg2015/index.php

×