Programmation PHP/Exemples/MiniCMS/Faire un miniCMS
Faire un miniCMS
[modifier | modifier le wikicode]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é côté client et modulaire côté serveur (backend). Définissons quelques fonctionnalités et appelons le package "myTinyCMS".
Les modules développés
[modifier | modifier le wikicode]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
Analyse
[modifier | modifier le wikicode]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éploiements
[modifier | modifier le wikicode]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.
Technologies
[modifier | modifier le wikicode]- Les données : Xmlisation
- Le code : Php5 Object
- Dumping & archiving : mysql en soutien pour la recherche indexée et le harvesting
Méthodologie
[modifier | modifier le wikicode]- RUP et patterns
- pas de frameworks (zend ou autre...) ou rapatriement total des snippets