Webappkit : un système de paquets pour PHP
Par J.Ducastel le mercredi 28 novembre 2007, 00:14 - Golems - Lien permanent
Le but de Webappkit, c'est de faciliter la réutilisation et le partage
de briques logicielles PHP pour les applications web. Pour les développeurs,
cela permet de se concentrer sur le code spécifique de l'application en
facilitant l'intégration de librairies génériques existantes. Pour les
simples bidouilleurs ou webmestres, de créer leur site en assemblant
des applications existantes telles que blog, forum, suivi statistique etc.
C'est un de mes projets, et un logiciel libre hébergé sur Google Code. Initialement, il s'agissait d'un meta-framework permettant de définir une pile de scripts à exécuter pour une url ou une branche du site. Depuis la version 0.8, j'ai changé d'approche pour me concentrer sur un système de paquets nommés kits et qui peuvent contenir de la simple librairie (avec gestion des dépendances) à l'application complète.
Tout naturellement, j'ai organisé mes propres librairies sous formes de kits. Elles sont incluses dans l'archive disponible au téléchargement, et je les détaillerai ici prochainement. Télécharger webappkit (la version actuelle est 0.9 alpha). Le projet dispose de son propre blog (en anglais), pour en suivre l'actualité, ainsi qu'un groupe de discussion google.
Utiliser un kit de librairie
Commençons par détailler l'usage le plus simple : un kit de librairie. Concrètement, les kits sont des dossiers à regrouper dans un même repertoire accessible par vos scripts (généralement webappkit/). Pour charger un kit, il faut alors appeler :
/**
* inclusion des librairies du base de webappkit
*/
include_once('webappkit/include-me.php');
/**
* les librairies du kit sont alors incluses, ainsi que les dependances
*/
Webappkit::loadKit('mon_kit');
Les kits peuvent également être organisés en arborescence, un kit contenant lui même des kits ;il est alors possible de charger directement un sous-kit si l'on n'a pas besoin du paquet total. D'ailleurs, charger un kit ne chargera pas nécessairement tous ses sous-kits, il est possible de définir les sous-kits qui seront chargés lors de l'appel du kit parent.
/**
* chargement d'un sous-kit
*/
Webappkit::loadKit('mon_kit.un_sous_kit');
Dans les prochains billets, je détaillerai les usages plus avancés, ainsi que la construction des kits.

Commentaires