30
WordPress, un framework complet? Ses forces et ses faiblesses ConFoo - 11 mars 2011 Friday, March 11, 2011

WordPress pour le développement d'aplications web

  • Upload
    confoo

  • View
    2.407

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WordPress pour le développement d'aplications web

WordPress, un framework complet?Ses forces et ses faiblesses

ConFoo - 11 mars 2011

Friday, March 11, 2011

Page 2: WordPress pour le développement d'aplications web

Ma personne.• Développeur web depuis début 2000• Développe des sites de marketeux• Des plateformes internes• Mordu du web• Fanboy de l’open source• Je suis venu défendre WordPress dans un

monde de MVC• Ce support visuel est optionel

Friday, March 11, 2011

Page 3: WordPress pour le développement d'aplications web

Pourquoi?(Philosophons un peu)

Friday, March 11, 2011

Page 4: WordPress pour le développement d'aplications web

Juste avant de commencer(Parce qu’il faut bien garder un peu de suspense)

http://codex.wordpress.org/Theme_Frameworks

Ce n’est pas des frameworks. Les themes frameworks ne sont pas des frameworks, mais bien des tentatives pour accélérer le développement de thème.

Aucun n’essait d’améliorer les capacités MVC ou ORM de WordPress. C’est un truc pour les designers wannabe développeurs.

Friday, March 11, 2011

Page 5: WordPress pour le développement d'aplications web

Qu’est-ce qu’un Framework(Il faut bien commencer quelque part)

• MVC• Modulable• Réutilisation du code• Rapide• Permet la collaboration

...Si quelqu’un veut contribuer à Wikipedia, l’article n’est pas écoeurant

Friday, March 11, 2011

Page 6: WordPress pour le développement d'aplications web

Les frameworks PHP(...)

• Il y en a presque plus que des blogues en Django• ... plus que des thèmes WordPress• THEY SU..• Il n’y en a pas un pour racheter l’autre

Friday, March 11, 2011

Page 7: WordPress pour le développement d'aplications web

Les pêchés mortels des Frameworks PHP

(Symfony, je te frappe dessus parce que tu es le meilleur en PHP ;) )

Friday, March 11, 2011

Page 8: WordPress pour le développement d'aplications web

Manque de direction

Source: http://www.phpframeworks.com/

Friday, March 11, 2011

Page 9: WordPress pour le développement d'aplications web

Incapable de s’affirmer

Friday, March 11, 2011

Page 10: WordPress pour le développement d'aplications web

Prétendre que PHP est un OOL(Object Oriented Language)

PHP n’a simplement pas été conçu comme un langage orienté objet. Ce qui fait la force des frameworks Ruby, Python, Java et

C# de ce monde est la flexibilité de leur modèle objet.

Friday, March 11, 2011

Page 11: WordPress pour le développement d'aplications web

Manque de communautéCode igniter

Yii

Symfony

WordPress

Friday, March 11, 2011

Page 12: WordPress pour le développement d'aplications web

WordPress(CodePress?)

Friday, March 11, 2011

Page 13: WordPress pour le développement d'aplications web

WordPress est facile

• Pour les usagés• Les designers• Vous (les développeurs)

Friday, March 11, 2011

Page 14: WordPress pour le développement d'aplications web

WordPress est Modulable

• En version 3.1 WordPress possède 1469 hooks et filters:• AJAX, Admin, connexion à la BD, récupération du

contenu, validation des données, etc.

• WordPress donne le contrôle aux développeurs sur:• Les URLs avec WP_Rewrite• Le modèle de donnée avec la taxonomie

Friday, March 11, 2011

Page 15: WordPress pour le développement d'aplications web

WordPress est Rapide

• Fonctionnel après son installation• Prêt à l’utilisation ou au développement• Minimum de configuration• Batteries included

Friday, March 11, 2011

Page 16: WordPress pour le développement d'aplications web

WordPress est MVC(Ça dépend seulement de la définition)

• Suffit de se donner la discipline• L’application est composée de plugins• Chaque plugin a son modèle de données• Chaque plugin a son/ses contrôleurs pour gérer les

actions• Les views sont tous les fichiers du thème. Utiliser

functions.php pour interfacer les contrôleurs et exposer des fonctions de templating au designer

Friday, March 11, 2011

Page 17: WordPress pour le développement d'aplications web

M: Le modèleUn exemple https://gist.github.com/858502

Ici on crée un type de donnée «Idée» et on lui donne un attribut «status»

• Abstraction complète du SQL• Plus long que la plupart de FW,• Gestion des accès intégrés• Beaucoup d’option de configuration

Friday, March 11, 2011

Page 18: WordPress pour le développement d'aplications web

V: La «View»Un exemple https://gist.github.com/858535

Avec functions.php on expose des fonctions du contrôleur, ensuite les views sont laissés au designer.

• Les validations de fallback sont faites• On enlève du contrôleur la gestion du UI• Tout le monde est plus content• Dans WordPress, la Loop gère tous les types de

données• On ajuste en fontion des informations obtenues par le

contrôleur.

Friday, March 11, 2011

Page 19: WordPress pour le développement d'aplications web

C: Le contrôleurUn exemple https://gist.github.com/860392

Plutôt inexistant

• Gestion faite par l’admin• Utilisation de fonctions génériques• Hooks pour modifications

Friday, March 11, 2011

Page 20: WordPress pour le développement d'aplications web

Soyons clairJe pense que WordPress a le potentiel de devenir un framework

Friday, March 11, 2011

Page 21: WordPress pour le développement d'aplications web

Ses faiblesses(Je commence toujours par les mauvaises nouvelles)

• Pas été pensé pour devenir un framework• Ne se publicise pas comme un framework• Pas de ORM• Architecture mal documentée• N’est pas MVC (vraiment...?)• La gestion des URLs

Friday, March 11, 2011

Page 22: WordPress pour le développement d'aplications web

Ses forces(Là on commence à jaser)

• Communauté ÉPIC• Maturité du code• Division des rôles• Cycle de développement actif• Est MVC (vraiment...?)• Supporté partout• Utilise l’OOP quand c’est utile, pas seulement pour faire

beau

Friday, March 11, 2011

Page 23: WordPress pour le développement d'aplications web

Et j’ai fait un projet(Dans le vrai monde, avec un client, des deadlines et des collaborateurs)

Friday, March 11, 2011

Page 24: WordPress pour le développement d'aplications web

Le voici

Friday, March 11, 2011

Page 25: WordPress pour le développement d'aplications web

L’expérience ne fut pas parfaite(mais...)

• La séparation des rôles est nickel• Il n’y a pas de gestion directe des données en SQL• Les parties du code sont indépendantes• Les conventions ne sont pas toujours respectées• Il y a un peu de code des contrôleurs dans certaines

views

Friday, March 11, 2011

Page 26: WordPress pour le développement d'aplications web

Donc(Parce que ça prend des conclusions...)

Friday, March 11, 2011

Page 27: WordPress pour le développement d'aplications web

• Framework fonctionnel, mais il faut savoir pardonner• Manque de doc• Manque un peu de formalisation• Doit être bien encadré pour performer de manière

optimale• Utilisez GIT quand vous faites ce type d’expérience

Friday, March 11, 2011

Page 28: WordPress pour le développement d'aplications web

Jsute avant de finir

• WordPress devrait être le frontend de votre web• Il le font mieux que vous (et moi)• Data storage -> REST -> WordPress -> Client

Et vous allez voir...!

Friday, March 11, 2011

Page 29: WordPress pour le développement d'aplications web

Qu’est-ce qui vous manque?

(Maintenant parlons)

Friday, March 11, 2011

Page 30: WordPress pour le développement d'aplications web

Isabelle Lo ezPrésidente

b

+1 (418) 264-5447 Blogue : [email protected] Skype / Posterous / Twitter : isatruc

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Marc BoivinDirecteur web

+1 (418) 803-7139 Skype : [email protected] Blip.fm / Twitter : marcboivin

Friday, March 11, 2011