Cahier des charges pour Accordéon CMS V2

Cahier des charges technologiques

Librairies existantes

  • symfony 1.4 pour le framework PHP - support jusqu'à fin 2012
  • plugins symfony existants
  • Doctrine1.2 pour l'ORM/DAO PHP (basé sur PDO pour la DAL) - plus fonctionnel que propel
  • Jquery1.4 pour le framework AJAX - plus standard que prototype
  • 960gs pour le framework CSS

Le code devra être le plus concis possible – l'utilisation d'ajax doit être minimisée.

Le déploiement ainsi que les mises à jour devront être automatisés - Entre autre un installeur devra être écrit.

Une nightly build du code source sera maintenue sur la forge universitaire

Accordeon devra être réécrit en symfony 2.0 Dès la fin de son écriture 1.4

Produits existants

  • éditeur WYSIWYG (au choix)
  • KFM pour le file Manager AJAX

Produit pour la modélisation

  • Ressources liées aux plugins MySQL Workbench

L'analyse d'Accordéon CMS est itérative et suit les principes de la roue de Deming PDCA.

Cahier des charges des conventions

Tous les noms de tables en bdd sont en tous minuscules strippés par des underscores _ . Une table rattachée à un composant doit posséder un nom préfixé par le nom de ce composant.

Les noms de classe Commencent tous par une Majuscule, et suivent la logique de nommage “camelized” (i.e Les espaces ou underscores _ sont supprimés, et chaque lettre suivant l'un de ces caractères est passée en majuscule). Les noms de classes découlant des bases de données sont une version camelized exact du nom de la table (pas de mapping).

Exemple: camelize(my_test_class) = MyTestClass

Cahier des charges structurel

L'Accordéon CMS peut se découper devrait être divisé en 3 composants indépendants

  • La gestion des utilisateurs, des groupes d'utilisateurs et de l'authentification qui devraient être basées sur sfDoctrineGuard
  • La gestion de l'arborescence et de ses contenus devra faire l'objet d'un compostant adnTree
  • La gestion des Permissions attribuées aux utilisateurs et groupes d'utilisateur sur l'arborescence devra également faire l'objet d'un composant adnPerm

Chaque objet métier ne constituant pas directement le CMS devra faire l'objet d'un composant supplémentaire indépendant

Tous les fichiers uploadés par l'utilisateur sont dans le dossier uploads classés par objets associés

Les fichiers css seront regroupés par thèmes exportables