Gul2.0

Un article de Wikipédia, l'encyclopédie libre.

GUL 2.0 est une librairie écrite dans le langage de programmation PHP utilisant la librairie PHP-GTK pour utiliser directement langage déclaratif XUL en vue de créer des applications clients.


[modifier] Histoire

GUL est à l'origine conçu par Thomas Favennec pour simplifier la création d'applications avec la librairie PHP-GTK. Sur le modèle de XUL, des balises XML simples sont créées spécifiquement pour couvrir les possibilités de GTK.
CSS et PHP peuvent être insérés directement dans le code GUL XML très simplement, comblant ainsi les lacunes de GLADE.

Une fois la version beta du projet accomplie, sur une suggestion de Christian Weiske (acteur dans la communauté de développement de PHP-GTK), le projet évolue directement en 2007 vers une version 2.0 entièrement réécrite, respectant le standard XUL au plus juste. Gul 2.0 est alors un interpréteur XUL écrit pour PHP-GTK (CSS inclus).

Sur le modèle de XAMLPAD, Gul 2.0 intègre des fonctions ayant permis de réaliser un mini éditeur nommé XULPAD comprenant une preview temps réel du code XUL écrit par l'utilisateur.

Toujours en développement, Gul 2.0 est dans sa version 2.0 Beta compatible avec 97% du langage XUL officiel.


[modifier] Exemple

<?php
 
include('gul2/gul.php');
 
GulParse('
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 
<window title="hello world !" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <button label="Cliquez moi dessus !" onclick="clicked" />
</window>
');
 
function clicked($button)
{
 echo 'Re coucou - Le bouton a été pressé !';
}
 
gtk::main();
 
?>

Ce petit exemple crée une fenêtre (classe GtkWindow), dont le titre est « Hello World!» et contenant un bouton (GtkButton) intitulé « Clickez moi dessus !. ». Lorsque ce bouton est pressé, le message « Re coucou - Le bouton a été pressé ! » est affiché dans la console, grâce à l'association entre un événement onclick et la fonction PHP clicked.


[modifier] Liens externes