Pxxo est un framework php5 opensource permettant de créer des briques logicielles appelées widget. Il est principalement utilisé dans les développements informatiques au sein de plusieurs services de l'INIST-CNRS.
La particularité de Pxxo sur les autres framework php est son côté "non intrusif". Un widget Pxxo peut-être utilisé presque sans effort dans n'importe quelle type d'application Web écrite en PHP. L'application Web n'est pas "esclave" des structures imposées par le framework Pxxo. Cette flexibilité permet aux widgets Pxxo de s'intégrer facilement, en passant éventuellement par l'écriture de plugin pour encore plus de flexibilité, dans tous types de CMS et plus généralement dans tous types d'application Web écrites en PHP. On peut donner comme exemples le plugin Pxxo pour Dokuwiki ou le plugin Pxxo pour Spip qui permettent d'intégrer rapidement un widget Pxxo dans ces deux logiciels.
De façon plus générique, voici comment une application Web écrite en PHP peut profiter d'un widget Pxxo :
include_path
de votre php.ini
mais cela demande un paramétrage plus compliqué. pear channel-discover pear.pxxo.net pear install pxxo/Pxxo pear install pxxo/Pxxo_Widget_HelloWorld
require_once 'Pxxo/Widget/HelloWorld.php'; $params = array(); $params['ResourcePath'] = rtrim(dirname(__FILE__), DIRECTORY_SEPARATOR).'/rsc'; $params['ResourceURL'] = rtrim(dirname($_SERVER['PHP_SELF']), DIRECTORY_SEPARATOR).'/rsc'; $params['Lang'] = 'fr'; $o = new Pxxo_Widget_HelloWorld($params); $o->main();
ResourcePath
doit être réglé sur un répertoire publique de votre serveur Web. Pxxo s'en servira pour y stocker les fichier de cache des ressources utilisées par les widgets. Je suppose dans cet exemple que le répertoire rsc
existe et possède les droits d'écriture pour le serveur Web.ResourceURL
doit être réglé sur l'URL publique permettant d'accéder au répertoire pointé par ResourcePath
Lang
est la langue à utiliser pour l'affichage du widget (inutile si le widget n'est pas internationalisé)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>HelloWorld test</title> <?php $o->dumphead(); ?> </head> <body> <?php $o->dump(); ?> </body> </html>
$o→dumphead()
doit être utilisé pour charger dans le navigateur les liens vers les feuilles de styles et les éventuel scripts utilisés par le widget. Il doit être impérativement placé dans la balise <head>
de votre page.$o→dump()
doit être appelé là où vous souhaitez que votre widget s'affiche. Le HTML du widget sera généré à cet endroit.
Discussion