Spip modules (voir http://thread.gmane.org/gmane.comp....) est un projet sur le CVS du lab pour proposer une série de modules pour Spip. Plutôt que des contribs, ces modules voudraient être des briques de bases sur lesquel s’appuie le reste de Spip. Le code est basé sur la version CVS de SPIP 1.8 du 20 novembre. Dès que Spip passera en 1.8 final, le code sera synchronisé.
ecrire/inc_courrier.php3 : Mail. Envoi de mails massif, par paquets, avec gestion des bounces, du format HTML/texte, usage de moteurs alternatifs (SMTP, mail() de PHP ...)
ecrire/inc_extract.php3 : Indexation de documents. Extension du moteur pour indexer les pièces jointes. Les formats de la suite OpenOffice* et le PDF seront gérés en PHP pur. Pour les autres, des outils tiers seront utilisés.
ecrire/inc_tachedefond.php : Tâche de fond. Un système de spool de tâche avec gestion de temps et antiblocage.
ecrire/inc_parser2.php : Syntaxe wiki. Version modulaire du moteur de syntaxe de Spip => SpipModulesPropre
ecrire/inc_cache.php : Cache. Système global et ouvert de cache.
Suggestion :
ecrire/inc_extra.php : les extras... rendus optionnels.
ecrire/inc_mot.php : les mots clés.
ecrire/inc_document.php : les documents.
Le code se veut un maximum compatible avec la version core de Spip et utilise les mêmes normes (cf doc officiel).
Pour avoir des tests unitaires simples (pour valider le code sur différents hebergements), le produit phpunit disponible sous PEAR est utilisé. Ce n’est pas une dépendance pour un projet en production, juste un outil de développeur, tout comme PEAR ::Benchmarking ou autres.
Tout le code est commenté en français avec le système de phpdoc.
Pour la nomenclature des fichiers, quelques petites précisions. Seul le _ est utilisé, pas de -, pour faire plus joli. De nouveaux préfixes sont utilisés :
inc pour les includes
cli pour les outils en ligne de commande
unit pour les tests unitaires
Pour gérer tout ça, un Makefile est utilisé.
Voici un exemple d’utilisation de ces outils modulaires de Spip : les ApiDistantes