SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Django pour les
développeurs Symfony
      Ou l’inverse, je sais plus.
T’es qui, toi, là ?

• Nicolas Perriault
• Développeur Web depuis                                      [plein de temps]


• Entrepreuneuuur depuis                                   [trois semaines]


• PHP ~ Ruby ~ Java ~ Python
• Core team Symfony

    Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Symfoquoi ?
• Framework Web
• PHP5
• MVC
• Full stack
• Scope fonctionnel ~= Django
• v1.x sous php <= 5.2.x, v2 sous php >= 5.3
     Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Symfony
• Sensio Labs
• Support Long Terme (3 ans)
• Communauté++
 • Documentation
 • Plugins
• PHP...
    Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
PHP(5)
•   Ahhh, PHP

•   Typage dynamique faible

•   Procédural et/ou OO

•   Multiplateforme, mais ~limité au Web

•   Simple, limité et peu structuré

•   Accessible au néophyte

•   Beaucoup de compétences sur le marché

       Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Python
•   Ahhh, Python

•   Typage dynamique fort

•   Procédural et/ou OO

•   Multiplateforme, multi-usages

•   Simple, puissant et structuré

•   Accessible au néophyte

•   Peu de compétences sur le marché

       Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Restons sérieux
                                    Que diable.


• Symfony ~= framework Web + surcouche
  professionnelle à PHP
 • Homogénéise une partie de l’API de PHP
 • Expose des fonctionnalités haut niveau et
    génériques au Web
 • Ne réinvente pas la roue
 • Favorise les bonnes pratiques et la
    réutilisation
    Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Et Django ?
• Django = framework Web
 • Exploite les richesses de Python
 • Expose des fonctionnalités haut niveau et
    génériques au Web
 • Ne réinvente pas la roue
 • Favorise les bonnes pratiques et la
    réutilisation

     Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Les stats ! Les stats !


                            Source : http://trends.google.com/




                               Source : http://langpop.com/

  Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Les stats ! Les stats !




                       Source : http://www.indeed.com/jobtrends/

  Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
</bullshit>
Fonctionnalités

• Admin generator                            •   Django Admin
• Routing, urls propres, bidirectionnalité   •   Routing, urls propres, bidirectionnalité
• ORM (Doctrine/Propel)                      •   ORM
• Forms                                      •   Forms
• Helpers                                    •   Template tags
• CLI                                        •   CLI
• HTML exception stack pages                 •   HTML exception stack pages
• Filters                                    •   Middlewares
• Events                                     •   Signals
• ACL, authentication w/ Session             •   Session Middleware + User
• YAML Fixtures                              •   JSON/XML/YAML/Python fixtures
• Tests                                      •   Tests
• Notion d’environnements                    •   Try/Catch sur import de settings
Fonctionnalités

• Configuration en YAML           •   Configuration en Python
• RAW PHP templates (~= #HELL)   •   Template engine
  • Inheritance                      •  Inheritance
  • Partials                         •  with..include
  • Slots                            •  Blocks
  • Components                       •  Template Inclusion Tags
• N/A (via plugin externe)       •   ACL persistence
• Formats, RESTful routing       •   N/A (via dev ou module externe)
• i18N (ui + orm), l10n          •   i18N (ui + orm), l10n
• Flash messages                 •   1.2 DEV
• Web Debug Toolbar              •   N/A (via module externe)
• N/A                            •   Serveur Web intégré
Résumons

• Django est sexy
• Symfony est sexy
• Python est sexy
• PHP est, heu... une réalité du marché™

     Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Plus concrètement

• Fortunes
 • Quotes manager
 • Maurice Svay (http://svay.com)
 • PHP4

     Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Fortunes
                                                          source code http://fortunes.inertie.org/




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Djortunes




                   source code http://github.com/n1k0/djortunes
Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Sftunes




                     source code http://github.com/n1k0/sftunes
Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Chiffres bruts
• Hors intégration HTML/CSS :
 • Djortunes
   • Codé en ~16h, sans ne rien connaître à
       Django, et pas grand chose en Python
 • Sftunes
  • Codé en ~4h, en ayant 4ans+
       d’expérience sur Symfony, et +10 ans en
       PHP
    Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Talk is cheap, show
   me the code.
              Linus T., Helsinki
Disclaimer
• Django newbie here!
• Plein d’optimisations à faire dans la version
  Django
• Plein d’erreurs de débutants
• Pas de bonnes pratiques Python/Django
• Pas représentatif du potentiel de Django
                                       Bon ça va, je peux y aller ?




      Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Routing




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Routing




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Controlleurs




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Controlleurs          (en un seul mot s’il vous plait)




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Templates




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Templates




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Helpers




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Helpers




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Settings

                                                                                    YAML




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Settings

                                                                                    Python




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
ORM




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
ORM




Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Conclusion de
          l’exercice
• Exercice intéressant !
 • Veille technologique
 • Diversification, idées neuves
 • Changement de point de vue
 • Tout développeur devrait s’y essayer, c’est
    bon pour la santé™

     Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
Questions ?

Mais conteúdo relacionado

Mais procurados

AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelecjulien pauli
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyHugo Hamon
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epitaNoel GUILBERT
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleAbdelkader Rhouati
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditauto entrepreneur
 
Formation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsKNP Labs
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyXavier Gorse
 
Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]Wixiweb
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPPascal MARTIN
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHPjulien pauli
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummiesMicrosoft
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- IntroductionMarwa OUNALLI
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation SymfonyJeremy Gachet
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkHugo Hamon
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Ippon
 

Mais procurados (20)

AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelec
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpedit
 
Formation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP Labs
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHP
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHP
 
TypeScript for dummies
TypeScript for dummiesTypeScript for dummies
TypeScript for dummies
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation Symfony
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
 

Destaque

Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPNicolas Perriault
 
Des cartes d'un autre monde - DjangoCong 2012
Des cartes d'un autre monde - DjangoCong 2012Des cartes d'un autre monde - DjangoCong 2012
Des cartes d'un autre monde - DjangoCong 2012Makina Corpus
 
Working with the django admin
Working with the django admin Working with the django admin
Working with the django admin flywindy
 
Best Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersBest Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersChristine Cheung
 
Creating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform frameworkCreating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform frameworkLes-Tilleuls.coop
 
Django 實戰 - 自己的購物網站自己做
Django 實戰 - 自己的購物網站自己做Django 實戰 - 自己的購物網站自己做
Django 實戰 - 自己的購物網站自己做flywindy
 
Happy hacking with Plone
Happy hacking with PloneHappy hacking with Plone
Happy hacking with PloneMakina Corpus
 
那些年,我用 Django Admin 接的案子
那些年,我用 Django Admin 接的案子那些年,我用 Django Admin 接的案子
那些年,我用 Django Admin 接的案子flywindy
 
Django workshop homework 3
Django workshop homework 3Django workshop homework 3
Django workshop homework 3flywindy
 
Customizing the Django Admin
Customizing the Django AdminCustomizing the Django Admin
Customizing the Django AdminLincoln Loop
 
Proyecto 4, rodríguez
Proyecto 4, rodríguezProyecto 4, rodríguez
Proyecto 4, rodríguezDaris-1977
 
Biodigestor de bidón
Biodigestor de bidónBiodigestor de bidón
Biodigestor de bidónthiago11cano
 
Proyecto facilitadores internos
Proyecto facilitadores internosProyecto facilitadores internos
Proyecto facilitadores internosLeonardo Velarde
 
Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...
Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...
Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...ANEPMA
 
Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...
Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...
Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...laarveja
 

Destaque (20)

Scrum.py, introduction
Scrum.py, introductionScrum.py, introduction
Scrum.py, introduction
 
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XPMethodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
 
Des cartes d'un autre monde - DjangoCong 2012
Des cartes d'un autre monde - DjangoCong 2012Des cartes d'un autre monde - DjangoCong 2012
Des cartes d'un autre monde - DjangoCong 2012
 
Geotrek
GeotrekGeotrek
Geotrek
 
Open models book
Open models bookOpen models book
Open models book
 
Working with the django admin
Working with the django admin Working with the django admin
Working with the django admin
 
Best Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersBest Practices for Front-End Django Developers
Best Practices for Front-End Django Developers
 
Creating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform frameworkCreating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform framework
 
Django 實戰 - 自己的購物網站自己做
Django 實戰 - 自己的購物網站自己做Django 實戰 - 自己的購物網站自己做
Django 實戰 - 自己的購物網站自己做
 
30 Symfony Best Practices
30 Symfony Best Practices30 Symfony Best Practices
30 Symfony Best Practices
 
Happy hacking with Plone
Happy hacking with PloneHappy hacking with Plone
Happy hacking with Plone
 
那些年,我用 Django Admin 接的案子
那些年,我用 Django Admin 接的案子那些年,我用 Django Admin 接的案子
那些年,我用 Django Admin 接的案子
 
Django workshop homework 3
Django workshop homework 3Django workshop homework 3
Django workshop homework 3
 
Customizing the Django Admin
Customizing the Django AdminCustomizing the Django Admin
Customizing the Django Admin
 
Proyecto 4, rodríguez
Proyecto 4, rodríguezProyecto 4, rodríguez
Proyecto 4, rodríguez
 
Biodigestor de bidón
Biodigestor de bidónBiodigestor de bidón
Biodigestor de bidón
 
Proyecto facilitadores internos
Proyecto facilitadores internosProyecto facilitadores internos
Proyecto facilitadores internos
 
Taller divia-soria
Taller divia-soriaTaller divia-soria
Taller divia-soria
 
Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...
Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...
Mesa redonda "Relaciones ANEPMA - grupos de interés del Sector Medio Ambienta...
 
Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...
Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...
Colección permacultura 07 reciclaje de basura compost, lombricultura, plastic...
 

Semelhante a Django pour les développeurs Symfony (et réciproquement)

Django toolbox
Django toolboxDjango toolbox
Django toolboxxordoquy
 
Symfony 4 2019
Symfony 4 2019Symfony 4 2019
Symfony 4 2019Eric Para
 
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfonyPerformance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfonyXavier Leune
 
Développement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium MobileDéveloppement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium MobileXavier Lacot
 
.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?Rui Carvalho
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015Stéphane Legrand
 
SEO Campus 2016 Oncrawl Open Source Log Analysis
SEO Campus 2016 Oncrawl Open Source Log AnalysisSEO Campus 2016 Oncrawl Open Source Log Analysis
SEO Campus 2016 Oncrawl Open Source Log AnalysisCogniteev
 
Alphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24quicky_osm
 
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
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24quicky_osm
 
Modoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris PythonModoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris Pythonadrienpad
 
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...Normandie Web Xperts
 

Semelhante a Django pour les développeurs Symfony (et réciproquement) (20)

Django toolbox
Django toolboxDjango toolbox
Django toolbox
 
Symfony 4 2019
Symfony 4 2019Symfony 4 2019
Symfony 4 2019
 
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfonyPerformance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
 
2011 paug-presentation-de-titanium-mobile
2011 paug-presentation-de-titanium-mobile2011 paug-presentation-de-titanium-mobile
2011 paug-presentation-de-titanium-mobile
 
Développement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium MobileDéveloppement Cross-Platform avec Titanium Mobile
Développement Cross-Platform avec Titanium Mobile
 
.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?.Net pour le développeur Java - une source d'inspiration?
.Net pour le développeur Java - une source d'inspiration?
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015
 
SEO Campus 2016 Oncrawl Open Source Log Analysis
SEO Campus 2016 Oncrawl Open Source Log AnalysisSEO Campus 2016 Oncrawl Open Source Log Analysis
SEO Campus 2016 Oncrawl Open Source Log Analysis
 
Alphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NET
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24
 
Symfony 2 et le Web
Symfony 2 et le WebSymfony 2 et le Web
Symfony 2 et le Web
 
Symfony et le Web
Symfony et le WebSymfony et le Web
Symfony et le Web
 
Modoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris PythonModoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris Python
 
4D Summit2013 refactoring
4D Summit2013 refactoring4D Summit2013 refactoring
4D Summit2013 refactoring
 
Machine-learning-FR.pdf
Machine-learning-FR.pdfMachine-learning-FR.pdf
Machine-learning-FR.pdf
 
Django by mrjmad
Django by mrjmadDjango by mrjmad
Django by mrjmad
 
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...
Conférence #nwxtech5 : Django, du framework pour les perfectionnistes au pony...
 
GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
 

Django pour les développeurs Symfony (et réciproquement)

  • 1. Django pour les développeurs Symfony Ou l’inverse, je sais plus.
  • 2. T’es qui, toi, là ? • Nicolas Perriault • Développeur Web depuis [plein de temps] • Entrepreuneuuur depuis [trois semaines] • PHP ~ Ruby ~ Java ~ Python • Core team Symfony Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 3. Symfoquoi ? • Framework Web • PHP5 • MVC • Full stack • Scope fonctionnel ~= Django • v1.x sous php <= 5.2.x, v2 sous php >= 5.3 Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 4. Symfony • Sensio Labs • Support Long Terme (3 ans) • Communauté++ • Documentation • Plugins • PHP... Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 5. PHP(5) • Ahhh, PHP • Typage dynamique faible • Procédural et/ou OO • Multiplateforme, mais ~limité au Web • Simple, limité et peu structuré • Accessible au néophyte • Beaucoup de compétences sur le marché Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 6. Python • Ahhh, Python • Typage dynamique fort • Procédural et/ou OO • Multiplateforme, multi-usages • Simple, puissant et structuré • Accessible au néophyte • Peu de compétences sur le marché Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 7. Restons sérieux Que diable. • Symfony ~= framework Web + surcouche professionnelle à PHP • Homogénéise une partie de l’API de PHP • Expose des fonctionnalités haut niveau et génériques au Web • Ne réinvente pas la roue • Favorise les bonnes pratiques et la réutilisation Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 8. Et Django ? • Django = framework Web • Exploite les richesses de Python • Expose des fonctionnalités haut niveau et génériques au Web • Ne réinvente pas la roue • Favorise les bonnes pratiques et la réutilisation Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 9. Les stats ! Les stats ! Source : http://trends.google.com/ Source : http://langpop.com/ Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 10. Les stats ! Les stats ! Source : http://www.indeed.com/jobtrends/ Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 12. Fonctionnalités • Admin generator • Django Admin • Routing, urls propres, bidirectionnalité • Routing, urls propres, bidirectionnalité • ORM (Doctrine/Propel) • ORM • Forms • Forms • Helpers • Template tags • CLI • CLI • HTML exception stack pages • HTML exception stack pages • Filters • Middlewares • Events • Signals • ACL, authentication w/ Session • Session Middleware + User • YAML Fixtures • JSON/XML/YAML/Python fixtures • Tests • Tests • Notion d’environnements • Try/Catch sur import de settings
  • 13. Fonctionnalités • Configuration en YAML • Configuration en Python • RAW PHP templates (~= #HELL) • Template engine • Inheritance • Inheritance • Partials • with..include • Slots • Blocks • Components • Template Inclusion Tags • N/A (via plugin externe) • ACL persistence • Formats, RESTful routing • N/A (via dev ou module externe) • i18N (ui + orm), l10n • i18N (ui + orm), l10n • Flash messages • 1.2 DEV • Web Debug Toolbar • N/A (via module externe) • N/A • Serveur Web intégré
  • 14. Résumons • Django est sexy • Symfony est sexy • Python est sexy • PHP est, heu... une réalité du marché™ Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 15. Plus concrètement • Fortunes • Quotes manager • Maurice Svay (http://svay.com) • PHP4 Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 16. Fortunes source code http://fortunes.inertie.org/ Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 17. Djortunes source code http://github.com/n1k0/djortunes Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 18. Sftunes source code http://github.com/n1k0/sftunes Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 19. Chiffres bruts • Hors intégration HTML/CSS : • Djortunes • Codé en ~16h, sans ne rien connaître à Django, et pas grand chose en Python • Sftunes • Codé en ~4h, en ayant 4ans+ d’expérience sur Symfony, et +10 ans en PHP Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 20. Talk is cheap, show me the code. Linus T., Helsinki
  • 21. Disclaimer • Django newbie here! • Plein d’optimisations à faire dans la version Django • Plein d’erreurs de débutants • Pas de bonnes pratiques Python/Django • Pas représentatif du potentiel de Django Bon ça va, je peux y aller ? Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 22. Routing Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 23. Routing Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 24. Controlleurs Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 25. Controlleurs (en un seul mot s’il vous plait) Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 26. Templates Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 27. Templates Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 28. Helpers Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 29. Helpers Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 30. Settings YAML Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 31. Settings Python Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 32. ORM Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 33. ORM Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony
  • 34. Conclusion de l’exercice • Exercice intéressant ! • Veille technologique • Diversification, idées neuves • Changement de point de vue • Tout développeur devrait s’y essayer, c’est bon pour la santé™ Rencontres Django - Marseille - avril 2010 - Django pour les développeurs Symfony