Programmation PHP/Exemples/MiniCMS/Faire un miniCMS


Faire un miniCMSModifier

Les CMS ou Content Management Systems sont répandus sur les toiles intra/extra(nets). Leur objectif étant d'assister la publication de contenu. L'article décrit comment en concevoir un, ajaxifié coté client et modulaire coté serveur (backend). Définissons quelques fonctionnalités et appelons le package "myTinyCMS".

Les modules développésModifier

Ne seront développés et intégrés que les modules nécessaires à la démonstration.

Ces modules peuvent s'organiser à desseins.

Backend(s)manager
Users
Contents
Customizations
FrontEnds Manager
Templates
Controlers
Front-Ends
Templates

AnalyseModifier

Les schémas suivants décrivent le déploiement des composants.


        ./index.php

	<Utilities>_____<Backend>	
		     |
	[Functions]  |  [ContentModule]	
	[Classes]    |  [TemplatesModule]	
	[Objects]    |  [UsersModule]
		     |
		     |__<Frontend>
		     
			[Outputer]
			[AjaxLayer]

On a ici trois couches à distribuer en MVC.

DéploiementsModifier

Les parties "clientes" et "administratives" sont séparées par simplicité. On prend un déploiement admins vs customers sur deux répertoires.


     ./Root
           
           main.php
           config.inc.php

           /Cms
                   /Functions
                               /common.inc.php
                   /Classes
                               /contentPane.class.php
                               /dataManager.class.php
                               /templateControler.class.php
                               /utilities.class.php
                               /snippetActer.class.php
                   /Images
                   /Objects
                               /Backend
                                           /authorize.inc.php
                                           /services.inc.php
                                           /webservices.inc.php
                                           /responder.inc.php
                               /Frontend
                                           /entry.inc.php
                                           /admin.inc.php
           /Owners
                   <AdminAccount>
                   /root 
                               /Contents
                                           /page.xml
                                           /user.xml
                                           /...
                               /Templates
                                           /admin.xml
                                           /default.xml
                               /Users
                   <Customers>
                   /customer1
                               /Contents
                               /Templates
                               /Users
                   /customer2
                   /...

Les composantes back&front ends sont dans cette version des packages ou sous composantes. Les données étant distinctement séparées du backOffice.

TechnologiesModifier

  • Les données : Xmlisation
  • Le code : Php5 Object
  • Dumping & archiving : mysql en soutien pour la recherche indexée et le harvesting

MéthodologieModifier

  • RUP et patterns
  • pas de frameworks (zend ou autre...) ou rapatriement total des snippets