Slides de la conférence donnée lors du PHP Tour à Lille le 24 novembre 2011
Ces Slides présentes la méthodologies et les implémentations mise en oeuvre dans le CMF (Content Managment Framework) Centurion.
Centurion, c'est un CMS ou CMF conçu à la façon d'un système de gestion de contenu basé sur Zend Framework en PHP 5. C'est une une solution de nouvelle génération permettant de gérer les utilisateurs et les contenu dans la même plateforme d'entreprise : http://centurion-project.org
24. Simple
Pourquoi faire compliquer quand on peut faire simple ?
Puissant
Il faut pouvoir coder toujours plus compliqué, toujours
plus vite !
Ouvert
Eh oui, on a pas le monopole de la bonne idée ;)
25. Nous avons simplifié l’usage
de Zend Framework.
C’est ZF tendu, nos
composants sont riques,
clairs, utilisables et flexibles.
26. Nous avons simplifié l’usage
de Zend Framework.
C’est ZF tendu, nos
composants sont
riques, clairs, utilisable
s et flexibles.
29. VOTRE PROJET
des modules orientés CMS
des librairies qui étendent ZF
Zend framework
30. VOTRE PROJET
CMS USERS CONTENU METIER SOCIAL
Arborescence Compte utilisateurs avec profil Intégration de référentiels Push de contenu générer
Pages avancé authentification gestion métier Import de flux externes automatiquement vers les
Templating des groupes et des permissions Publication vers plateformes réseaux sociaux twitter,
Outils SEO par groupe et par utilisateur externes facebook …
Multilinguisme
Dispatcher Manipulation Gestion de
Trait
d’événements d’images cache
Génération de Génération de Connecteur aux
Magic Filters CRUD
model modèles API « sociales »
Abstraction de Génération de
MPTT Actions sur date Gestion de fichiers
données formulaire
Zend framework
48. Features “core”
Magic filters (suite)
• Une méthode pour les requêter tous
• Etend sans rentrer en conflit avec la classe Zend_Db_Table_Select
• Sécurisé (échappement automatique)
• API unifiée > Syntaxe utilisable dans d’autres contextes
o Configuration du CRUD
o “Getter” sur les rows
o …
49. Features “core”
Magic filters
=
Garde la puissance du SQL
Plus tolérant au changement du modèle
50. Features “core”
Ma brique “user” n’incorpore pas de
CRM
Comment en ajouter une?
52. Features “core”
Signaux
=
Ajout simple de traitements en réaction à
un « événement »
Minimise les risques de régression
53. Features “core”
Comment ajouter de la logique
à certain de mes modèles ?
(tous étendent Zend_Db_Table)
54. Features “core”
Trait (pourquoi attendre PHP 5.4)
• Permet “d’ajouter” et “surcharger” des méthodes à une classe
• Complètement transparent pour le développeur
• Juste une Interface à implémenter
• Disponible pour les models (table, row, select), les controllers, les
forms…
56. Features “core”
Trait
=
Factorisation de code grace à l’
“héritage multiple” et souplesse de
l’implémentation
57. Modules “built-in”
Media
• Gestion des duplicata
• Collection d’effets : crop, resize / adaptative resize, …
• Configurable pour le fonctionnement avec un CDN
• Fournit un ensemble de composants pour la contribution
58. Modules “built-in”
User
• Gestion des user et de l’authentification
• Gestion des groupes
• Gestion des permissions par user et par groupe
• Pas de gestion de profil
• Émet des signaux
59. Modules “add-on”
Generator
Génère par reverse engineering :
• les “models” par rapport à la base de données
• les formulaires
• Un controller backoffice (CRUD) par “model”
• Un controller frontoffice par “model”
60. Modules “add-on”
Social
• Pousse du contenu sur les réseaux sociaux
• Fournit un ensemble de “traits” qui simplifie l’implémentation
• Pas de dépendance
61. Resumé
• Features “core” hautement génériques qui étendent Zend Framework
sans créer de conflits
• Les modules built-in répondent aux besoins systématiques des
applications web
• Les modules “add-on” permettent de composer au mieux l’application
finale