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É