Pxxo : un framework php non intrusif

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 :

  1. Dans un premier temps il est nécessaire d'installer Pxxo et le widget souhaité dans le dépôt PEAR de votre serveur. Il est également possible d'utiliser directement les sources puis d'ajuster la variable 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
  2. Dans un second temps vous devez identifier l'endroit où vous souhaitez afficher le widget et plus précisément le script PHP dans votre application responsable de la génération de votre page Web. Vous pouvez alors instancier le widget dans le script de cette manière :
    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é)
  3. La dernière étape consiste à positionner le widget là où vous le souhaitez dans votre page HTML. Voici un exemple simple :
    <!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

Enter your comment
 
 
 

Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki