100 likes | 254 Views
PHP GTK PHP…au delà du Web Paris, 28 novembre 2001. Armel FAUVEAU <armel.fauveau@globalis-ms.com> GLOBALIS media systems. Origine du projet. Auteur. Andrei Zmievsky <andrei@php.net>. Constat. Langage de script populaire et accessible Multi-plateforme Nombreuses fonctions et extensions
E N D
PHP GTKPHP…au delà du WebParis, 28 novembre 2001 Armel FAUVEAU<armel.fauveau@globalis-ms.com> GLOBALIS media systems
Origine du projet Auteur Andrei Zmievsky <andrei@php.net> Constat • Langage de script populaire et accessible • Multi-plateforme • Nombreuses fonctions et extensions • Inféodé au Web (voir script Shell) Motivation • Capitaliser l’existant • Proposer une nouvelle alternative de développement • Repousser les limites de l’approche Web
GTK en bref... Qu’est-ce que GTK ? • GTK (GIMP Toolkit) • Librairie de développement GUI • Ecrite à l'origine pour le développement de GIMP (General Image Manipulation Program) • Multi-plateforme Architecture de GTK+ • GLib : librairie de remplacements des fonctions d ’appels standard du C (chaine, conversion, etc.). N ’est pas utilisable depuis PHP GTK. • GDK (GIMP Drawing Kit) : librairie bas niveau de gestion des fenêtres. • GTK : collection de widgets
Web vs Client-side Approche « Web » • Scripts déployés coté serveur • Le serveur ne connaît rien (ou presque) du client • Limitations (protocole, serveur, client, etc.) • Exécution procédurale Approche « Client-side » • Exécution événementielle • Interface graphique riche et élaborée • Accès aux ressources de la machine cliente
Hello World ! (1/4) Objectif • Créer une fenêtre simple comportant un bouton • Gérer l ’événement « destroy » • Gérer l ’événement « clicked » Chargement de l ’extension PHP-GTK if (!class_exists('gtk')) { if (strtoupper(substr(PHP_OS, 0,3) == 'WIN')) dl('php_gtk.dll'); else dl('php_gtk.so'); }
Hello World ! (2/4) Fonction « shutdown () » function shutdown() { print("Bye bye...\n"); gtk::main_quit(); } Fonction « hello() » function hello() { global $window; print "Hello World!\n"; $window->destroy(); }
Hello World ! (3/4) Création de la fenêtre $window = &new GtkWindow(); $window->connect('destroy', 'shutdown'); $window->set_border_width(10); Création du bouton $button = &new GtkButton('Hello World!'); $button->connect('clicked', 'hello'); $window->add($button);
Hello World ! (4/4) Affichage de l ’ensemble... $window->show_all(); …et exécution de la boucle principale (main loop) gtk::main();
En savoir plus Avancement du projet PHP GTK • Version 0.1.1 (24/09/2001) • Encore au stade de développement • Nous avons besoin de vous !!! Ressources Web… • http://gtk.php.net • http://gtk.php.net/docs.php • http://gtk.php.net/faq.php