SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
VERY
                              LAST-M




De symfony 1
                                    INUTE
                                            HOTEL
                                                    DEALS




     vers
  Symfony 2
en douceur <3
   sfLive Paris 2013
VeryLastRoom


Application iPhone de réservation de chambres d'hôtels
le jour même pour le soir même, à prix cassé.


๏ 1ères lignes de code en 2011 avant Symfony 2.
๏ 40% du code historique symfony1 migré.
๏ Toute nouvelle fonctionnalité sous Symfony2.




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Qui suis-je ?
                                        Sébastien HOUZÉ
                                        CTO VeryLastRoom
                                        @sebastienhouze
                                        http://github.com/shouze

๏      Développeur symfony depuis 2007.                                                      Sébastien HOUZÉ

๏      +10 ans d'expérience sites internet à forte audience.                                 05 - 06 mars 2012 (1 nuit)



๏      Speaker sfPot Marseille.
๏      Contributeur, dont symfony & hoa-project.




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Avant de commencer...


                                                                            php > 5.3 ?
                                                                             PSR-0 ?


                                                                             Let’s Go !
sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Comment je peux préparer mon code
                symfony1 à migrer ?
 ๏ Isolez le code métier non couplé à symfony1 dans des bibliothèques.
 ๏ Passez aux namespaces.
 ๏ Avec composer bénéficiez de l’autoloader PSR-0 ;)




 ๏ Tip: utilisez satis au lieu de packagist pour les bibliothèques privées.


sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Exemple
                                         Doctrine 1 comme dépendance via composer

                                                                                              5.4y!
                                                                                            hp d
                                                                                           p   rin e Rea
                                                                                           Doct




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Que dois-je migrer en premier ?

 ๏ Vos bibliothèques, qui sont maintenant installables en un clin d’œil via composer ;)




 ๏ Commencez par des couches applicatives basses, comme votre modèle de
   données.




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Mon modèle de données est migré
                     Comment l’exploiter ?  e DaaS!
                                                                                                                                           B     sa Ser vi
                                                                                                                                                          ce
                                                                                                                                           Data a



         Constat                                 Persistez les modèles dans votre app Sf2 !
 Répartition des requêtes


                     Écriture
                      30 %                               Contrôleur sf1                           Client REST                                  Contrôleur
       Lecture                                                          Modèle             SAVE        sf1              POST, PUT, PATCH        REST Sf2
        70 %
                                                                                                  suggestion : guzzle




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Comment être sûr de ne pas entraîner
                                              ez!
                 de régressions ?        Test
                                                                                                                              test is goo
                                                                                                                                          d




           Unitairement                                                 Fonctionnellement                     Continuellement
                                                                                                                  Travis CI

                        +
                                                                                                                  Offre pro pour dépôts git privés




                                                                                                                  Gitlab CI
                                                                                                                  Copycat de travis, prometteur
        atoum                  Hoa project                                                 Behat
                                   Coming soon                                  Behavior Driven Development

                                                                                                                  Jenkins CI
                                                                                                                  Former Hudson, la tradition




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Tests unitaires atoum
                                                                                Principaux avantages




๏ Possibilité d’écrire les tests en mode story (à la façon de Behat).
๏ Mock des objets puissant.
๏ Intégration prochaine de tests par contrat via Hoa / praspel



                                 Consultez la (très bonne) présentation d’atoum
                                                 de Stéphane PY
                                    http://prezi.com/pr_8ylm4dxxt/atoum/


sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Tests fonctionnels Behat
                                         Un test écrit pour votre app sf1 fonctionne directement sous Sf2!




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Comment migrer partiellement mon API
                                            un
                REST sf1 ?         A
                                        tez
                                     jou ur!
                                          e      Bénéficiez immédiatement du travail en cours sous Sf2 ;)
                                                                                                           aiguill

                                                 GET /resource




                   App sf1                                  App SF2


sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Comment migrer partiellement mon
                    frontend/backend ?
                        Authentification                                                                   Contenu

   ๏ Partager la session sf1 dans votre app                                                ๏ JSON-P / CORS vers app Sf2
     Sf2 : TheodoEvolutionSessionBundle
                                                                                           ๏ Proxyiser appel vers un
   ๏ Ajouter une authentification centrale                                                    contrôleur Sf2 depuis sf1
     (CAS, LDAP, SAML...)

   ๏ Authentification à la OAuth

sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Comment être sûr que je ne vais pas
               dégrader les performances ?
                                 Graphes                                                   Audit




                                            ou Graphite




sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
Questions ?




                                                                               Nous rejoindre ?
                                                                                     jobs@verylastroom.com



sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ

Mais conteúdo relacionado

Destaque

symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
 
Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteVanessa David
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfonyJeremy Gachet
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec SymfonyMohammed Rhamnia
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
 
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012Fabrice Bernhard
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticJoris Calabrese
 
Audit technique de code
Audit technique de codeAudit technique de code
Audit technique de codeMehdi TAZI
 
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm
 
Meetup symfony2-3wa
Meetup symfony2-3waMeetup symfony2-3wa
Meetup symfony2-3waunpetitlu
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQLAlphorm
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeENSET, Université Hassan II Casablanca
 
Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Fabien Gasser
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 

Destaque (20)

symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 
Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnante
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec Symfony
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
Modernisation of Legacy PHP Applications to Symfony2 - Symfony Live Berlin 2012
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez Meetic
 
Audit technique de code
Audit technique de codeAudit technique de code
Audit technique de code
 
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ssAlphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
Alphorm.com Support de la Formation Symfony 3 , les fondamentaux-ss
 
Meetup symfony2-3wa
Meetup symfony2-3waMeetup symfony2-3wa
Meetup symfony2-3wa
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQL
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Symfony 2 et le Web
Symfony 2 et le WebSymfony 2 et le Web
Symfony 2 et le Web
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ? Comment construire un environnement e-commerce complet avec Symfony 2 ?
Comment construire un environnement e-commerce complet avec Symfony 2 ?
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 

Very lastroom symfony1 vers symfony2 en douceur

  • 1. VERY LAST-M De symfony 1 INUTE HOTEL DEALS vers Symfony 2 en douceur <3 sfLive Paris 2013
  • 2. VeryLastRoom Application iPhone de réservation de chambres d'hôtels le jour même pour le soir même, à prix cassé. ๏ 1ères lignes de code en 2011 avant Symfony 2. ๏ 40% du code historique symfony1 migré. ๏ Toute nouvelle fonctionnalité sous Symfony2. sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 3. Qui suis-je ? Sébastien HOUZÉ CTO VeryLastRoom @sebastienhouze http://github.com/shouze ๏ Développeur symfony depuis 2007. Sébastien HOUZÉ ๏ +10 ans d'expérience sites internet à forte audience. 05 - 06 mars 2012 (1 nuit) ๏ Speaker sfPot Marseille. ๏ Contributeur, dont symfony & hoa-project. sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 4. Avant de commencer... php > 5.3 ? PSR-0 ? Let’s Go ! sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 5. Comment je peux préparer mon code symfony1 à migrer ? ๏ Isolez le code métier non couplé à symfony1 dans des bibliothèques. ๏ Passez aux namespaces. ๏ Avec composer bénéficiez de l’autoloader PSR-0 ;) ๏ Tip: utilisez satis au lieu de packagist pour les bibliothèques privées. sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 6. Exemple Doctrine 1 comme dépendance via composer 5.4y! hp d p rin e Rea Doct sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 7. Que dois-je migrer en premier ? ๏ Vos bibliothèques, qui sont maintenant installables en un clin d’œil via composer ;) ๏ Commencez par des couches applicatives basses, comme votre modèle de données. sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 8. Mon modèle de données est migré Comment l’exploiter ? e DaaS! B sa Ser vi ce Data a Constat Persistez les modèles dans votre app Sf2 ! Répartition des requêtes Écriture 30 % Contrôleur sf1 Client REST Contrôleur Lecture Modèle SAVE sf1 POST, PUT, PATCH REST Sf2 70 % suggestion : guzzle sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 9. Comment être sûr de ne pas entraîner ez! de régressions ? Test test is goo d Unitairement Fonctionnellement Continuellement Travis CI + Offre pro pour dépôts git privés Gitlab CI Copycat de travis, prometteur atoum Hoa project Behat Coming soon Behavior Driven Development Jenkins CI Former Hudson, la tradition sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 10. Tests unitaires atoum Principaux avantages ๏ Possibilité d’écrire les tests en mode story (à la façon de Behat). ๏ Mock des objets puissant. ๏ Intégration prochaine de tests par contrat via Hoa / praspel Consultez la (très bonne) présentation d’atoum de Stéphane PY http://prezi.com/pr_8ylm4dxxt/atoum/ sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 11. Tests fonctionnels Behat Un test écrit pour votre app sf1 fonctionne directement sous Sf2! sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 12. Comment migrer partiellement mon API un REST sf1 ? A tez jou ur! e Bénéficiez immédiatement du travail en cours sous Sf2 ;) aiguill GET /resource App sf1 App SF2 sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 13. Comment migrer partiellement mon frontend/backend ? Authentification Contenu ๏ Partager la session sf1 dans votre app ๏ JSON-P / CORS vers app Sf2 Sf2 : TheodoEvolutionSessionBundle ๏ Proxyiser appel vers un ๏ Ajouter une authentification centrale contrôleur Sf2 depuis sf1 (CAS, LDAP, SAML...) ๏ Authentification à la OAuth sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 14. Comment être sûr que je ne vais pas dégrader les performances ? Graphes Audit ou Graphite sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ
  • 15. Questions ? Nous rejoindre ? jobs@verylastroom.com sfLive Paris - 5 mars 2013 - de symfony 1 vers Symfony 2 en douceur <3 - Sébastien HOUZÉ