PHPUi : créer et manipuler des interfaces utilisateurs en PHP

Posté par seiyar81 le 21 septembre 2012 | Laisser un commentaire (2)

PHPUi Logo

Je présente aujourd’hui un projet commencé pour mon mémoire de fin d’études, puis mis en pause, puis repris, puis complètement réécris …

Il s’agit d’une librairie qui permet de générer des interfaces utilisateurs en écrivant uniquement du PHP (ou presque :p).
Le but est de simplifier la vie aux développeurs qui souhaitent générer dynamiquement du code HTML/CSS ou Javascript côté serveur.
A l’heure actuelle, le support du CSS et du Javascript est en cours d’implémentation/optimisation.

La librairie se veut 100% objet PHP5, utilise les namespaces, est facilement extensible via une abstraction de la plupart de ses fonctionnalités, supporte l’autoload, utilise le pattern Observer etc …
De plus un support particulier des frameworks CSS 960gs et Blueprint a été implémenté (via le système d’abstraction, donc applicable à d’autres frameworks/librairies) afin de réellement faciliter la mise en place d’interfaces aux développeurs.

Si vous souhaitez plus d’infos sur les frameworks cités : 960gs, Blueprint.

Un petit exemple de code :

    $blue = PHPUi::getInstance()->blueprint(array('class' => 'container', 'id' => 'blueprint'));
    $blue->addChild(new Xhtml\Element('h2', array('span' => 24), true, '24 Column Grid - Blueprint'));
    $blue->addChild(new Xhtml\Element('div', array('notice' => true), true, 'This is a div with class notice'));
    $blue->addChild(new Xhtml\Element('div', array('error' => true), true, 'This is a div with class error'));
    $blue->jquery()->click( 
        $blue->jquery()->ajax( 
             array( 
                 'url' => 'ajax.php', 
                 'type' => 'POST', 
                 'dataType' => 'html',
                 'success' => 'function(data) { $("#blueprint").append(data); }' 
             ) 
        ) 
    );

On créé ici un nouvel élément utilisant l’adapter Blueprint, on peut donc directement initialiser des div de type error, notice ou alert en passant le paramètre à true. On applique ensuite un filtre jQuery qui au clic sur la div lancera un appel AJAX avec les paramètres donnés.
La librairie se charge ensuite de générer le code correspondant aux appels effectués.

Sachez qu’il est également possible de charger/décharger un ensemble d’éléments via un système d’adapter.
Exemple avec notre élément $blue de tout à l’heure :

     $dump = Xhtml\Dumper\DumperJson::dump( $blue );
     $loaderJson = new Xhtml\Loader\LoaderJson(array('content' => $dump));
     echo $loaderJson->load();

Ici on dump et on load un élément en JSON mais à terme il sera possible d’exporter/charger via n’importe quel format puisqu’il est possible de définir ses propres classes.

Si vous souhaitez regarder les exemples ou bien le code de la librairie, un dépôt Github existe :
https://github.com/seiyar81/phpui

La librairie est toujours en cours de développement, je suis donc ouvert aux propositions d’améliorations ou aux fonctionnalités à implémenter.

Catégorie: Développement Web, Javascript, PHP | Laisser un commentaire (2)


2 commentaires pour “PHPUi : créer et manipuler des interfaces utilisateurs en PHP”

Laissez un commentaire