wordpress pour le développement d'aplications web
TRANSCRIPT
WordPress, un framework complet?Ses forces et ses faiblesses
ConFoo - 11 mars 2011
Friday, March 11, 2011
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
Pourquoi?(Philosophons un peu)
Friday, March 11, 2011
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
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
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
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
Manque de direction
Source: http://www.phpframeworks.com/
Friday, March 11, 2011
Incapable de s’affirmer
Friday, March 11, 2011
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
Manque de communautéCode igniter
Yii
Symfony
WordPress
Friday, March 11, 2011
WordPress(CodePress?)
Friday, March 11, 2011
WordPress est facile
• Pour les usagés• Les designers• Vous (les développeurs)
Friday, March 11, 2011
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
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
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
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
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
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
Soyons clairJe pense que WordPress a le potentiel de devenir un framework
Friday, March 11, 2011
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
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
Et j’ai fait un projet(Dans le vrai monde, avec un client, des deadlines et des collaborateurs)
Friday, March 11, 2011
Le voici
Friday, March 11, 2011
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
Donc(Parce que ça prend des conclusions...)
Friday, March 11, 2011
• 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
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
Qu’est-ce qui vous manque?
(Maintenant parlons)
Friday, March 11, 2011
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