Les CMS
basés sur framework
en environnement professionnel
@CenturionCMS
             Qui sommes nous ?
       Une team de passionnés de web :
développeurs, architectes, UI/UX designers, … dans
              le métier depuis 15 ans
Centurion est un CMF

aux exigences uniques de vos
       projets.
Les besoins ont changé
 & le web a bien changé
depuis l’arrivée des CMS
Les CMS sont d’excellents
             outils
    pour développer des
sites éditoriaux « simples »
Nos clients ont des besoins
de plus en plus particuliers
multi sites
                    multi langues
                    multi users
ils veulent multi   multi sources
                    multi devices
                    multi social
                    en gros c’est du multi ...
Nos clients veulent
Contribuer une fois, et publier partout
1 seule
                Multi-publishing
                 plateforme

M                                              M




    Android                          IOS
    Tablettes                      Tablettes
                     Website
oui, avec un CMS tout est
         possible.
    mais à quel prix ?
& en combien de temps ?
pour aller à Berlin?
voiture ou avion?
avion!
même si en voiture c’est
      possible…
CMS
            Content
trop haut
            Mangement
            System




trop bas    Framework
            Bas niveau
trop haut   CMS




trop bas    Framework
les CMF sont taillés
pour réaliser des “content
         platform“
      conséquentes
Nos retours d’expérience projet
des projets conséquents

RSE GDF SUEZ   NAMCO BANDAI   PPR CFAO
13 sites, 11 langues, 6 zones

Nos plateformes sont :
180 sites, 4 zones, 34 pays, 4
                 langues

Nos plateformes sont:
70 pays, 10 langues, 20000 users

Nos plateformes sont :
Mathias Desloges
& Laurent Chenay
Comment c’est fait!
Nos challenges techniques
Comment être puissant et
           fiable

  tout en restant souple et
simple pour le développeur ?
Nos challenges techniques
Comment être puissant et
           fiable

  tout en restant souple et
simple pour le développeur ?
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 ;)
Nous avons simplifié l’usage
   de Zend Framework.

    C’est ZF tendu, nos
composants sont          riques,
clairs, utilisables et flexibles.
Nous avons simplifié l’usage
   de Zend Framework.

   C’est ZF tendu, nos
      composants sont
    riques, clairs, utilisable
        s et flexibles.
Zend framework
des librairies qui étendent ZF



      Zend framework
VOTRE PROJET



 des modules orientés CMS




des librairies qui étendent ZF



      Zend framework
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
Pourquoi ZF?
The PHP Company
Pourquoi ZF?
The PHP Company
Pourquoi Zend Framework ?

    modulable    puissant
     complet      ouvert
      simple    bas niveau
Quelles problèmatiques?
  Quelles réponses?
Features “core”




 Les interfaces d’administration c’est
       toujours la même chose
Features “core”




CRUD
• Génération des listes/formulaires | gestion de la persistance

• Simplement en héritant un controller
Features “core”

CRUD (Suite)
Personnalisation simple : uniquement par de la “configuration”
CRUD
Features “core”


CRUD (Suite)
Génération de formulaire automatique
Features “core”
CRUD (Suite)
Feature “core”




                 CRUD
                    =
     Coût d’apprentissage très faible
   & Gain en temps de développement
                 élevé
Features “core”




    Le développeur connait son
    modèle de données sur le bout
            des doigts…
Features “core”




    …à force d’écrire ce genre de
                code
Features “core”



Magic filters
• API pour fabriquer des requêtes

• API simple et intuitive

• Couvre 95% des requêtes faites usuellement
Features “core”



Magic filters (suite)
Features “core”



Magic filters (suite)
Centurion
Features “core”



Magic filters (suite)
Centurion




Zend Framework
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   …
Features “core”




                  Magic filters
                   =
      Garde la puissance du SQL
Plus tolérant au changement du modèle
Features “core”




 Ma brique “user” n’incorpore pas de
                CRM
     Comment en ajouter une?
Features “core”


Signaux
Features “core”




                  Signaux
                    =
Ajout simple de traitements en réaction à
           un « événement »
  Minimise les risques de régression
Features “core”




   Comment ajouter de la logique
    à certain de mes modèles ?
            (tous étendent Zend_Db_Table)
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…
Features “core”


Trait (suite)
Le trait




Une classe qui utilise le trait
Features “core”




                  Trait
                      =
      Factorisation de code grace à l’
    “héritage multiple” et souplesse de
              l’implémentation
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
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
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”
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
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
https://github.com/centurion-
        project/Centurion
centurion-project.org

  We are serious
about web platforms
by the way on recrute :-)
The End

Les CMS basés sur framework - PHP Tour 2011