Lorsqu’on parle de PHP, on pense tout de suite « site internet ». Mais saviez-vous que PHP a également d’autres utilités ? On connaissait déjà la version « cli » qui permet d’executer un script en ligne de commande, avec un affichage optimisé pour (sans les entêtes HTTP entre autre, mais également sans le formatage HTML des messages d’erreurs). Et bien il est également possible de réaliser des applications avec interface graphique.
Il existe pour cela deux librairies graphiques : GTK et Winbinder. Là où GTK est multiplateforme (Linux/Win), WinBinder est lui spécialisé dans les applications Windows. Ce dernier réalise des interfaces bien plus jolies en utilisant de composants Win, là où GTK a un style moins « fin » mais portable. %%% %%% __GTK-PHP__%%% Ceux qui ont déjà manipulé GTK dans des scripts en C ne vont pas se sentir dépaysés. Ici, les fonctions ont le même nom. La syntaxe est juste objet et non fonctionnelle. On retrouve les grands classiques : GDK, GTK, et Pango pour la gestion des textes un peu complexes (en clair, dès qu’il y a des caractères accentués ou non latins). Son utilisation reste fastidieuse dès qu’on souhaite faire des interfaces évoluées (ca me rappelle les vieux TP en cours, où on passait une heure à aligner 3 boutons et des champs de saisie…). La version 2 est en cours de développement et devrait sortir cet été. Une version beta est disponible. »__Mise à jour 14 juin 11h30__ »%%% Merci à Patate en commentaire qui a porté à mon attention l’existence d’un frontend à Glade qui permet de réaliser des interfaces GTK en drag and drop. L’outil se nomme phpGladeTool. »Avantages : » %%% * Marche sous Windows et Linux * Même principe de fonctionnement que GTK pour C ou C++ »Inconvénients : »%%% * Utilisation fastidieuse dès qu’il y a plus d’une dizaine d’éléments sur l’interface (obligation d’utiliser Glade et phpGladeTool). * Interfaces réalisées de qualité moyenne. %%% __Winbinder__%%% Une découverte récente pour moi 😉 Cette librairie va vous fabriquer uniquement des interfaces Windows, mais quelles interfaces ! On a l’impression de se retrouver devant un programme en .net ou VB tant l’apparence graphique est proche des logiciels Windows justement : Une intégration parfaite à l’interface utilisateur, avec tous les composants habituels de windows : barre de menu, barre de statut, etc. Concernant le code, l’utilisation reste relativement aisée, notamment grâce au « Winbinder layout Editor ». En clair, une interface graphique de création d’interface, comme le propose Visual Basic par exemple. Vous construisez visuellement votre interface, et après il ne vous reste plus qu’à écrire le code derrière tout ça (comme VB encore une fois :p). Le programme permet également de compiler le résultat en un executable. Il permet également de convertir la documentation du format XML au format CHM, utilisé dans Windows. La librairie est orientée fonctionnelle et non objet. %%% »Avantages : » %%% * Interfaces très jolies * Constructeur graphique d’interface (par drag and drop) »Inconvénients : »%%% * Ne marche qu’avec Windows * Nécéssite la dernière version de PHP4 ou PHP5. %%% %%% __Transformer le .php en quelque chose d’executable__%%% Après avoir choisi la librairie qui va créer notre interface, il nous reste un dernier soucis à régler. En effet, tout ce que vous avez pour le moment, c’est un joli fichier .php. Comment distribuer votre programme en executable, sans rendre l’installation de PHP nécéssaire ? C’est le but d’un compilateur. J’en cherchais un depuis des lustres, et bien depuis quelques jours je ne cherche plus 😉 Bambalam est là pour ça. Pour l’instant, il ne produit que des executables Windows .exe. Il utilise PHP 4.4.2 avec une liste de modules (liste exacte dispo sur le site du programme). Et comme un bonheur n’arrive jamais seul, sachez qu’il en profite pour crypter vos fichiers PHP avec Turk MMCache. Ainsi, vous pouvez distribuer vos petits programmes sans avoir peur qu’on récupère votre source php pour en faire autre chose 😉 %%% Petite rectification d’ailleurs : Votre code PHP ne sera pas à proprement dit « compilé ». En effet, le .exe final contient en fait une version de PHP allégée, et l’ensemble de vos sources en « opcode », c’est à dire en code intermédiaire lisible par l’executable PHP mais plus rapide que le code source brut. __Liens:__ * [BAMCompile|http://www.bambalam.se/bamcompile/|en] * [Winbinder|http://winbinder.org/|en] * [GTK-PHP|http://gtk.php.net/|en] * [Glade|http://glade.gnome.org/index.html|en] * [phpGladeTool|http://phpgladetool.sourceforge.net|en]
Hmmmm…..
Tu sembles oublier l’excellent Glade — glade.gnome.org/index.htm… — qui permet de faire des interfaces GTK sans trop ce fatiguer…:p
Couplé a phpGladeTool — phpgladetool.sourceforge…. — il permet de ne pratiquement pas mettre les mains dans le code…
Et pour les windowsiens:
http://www.gnope.org/
Et voui ya pas que Microsoft qui sait faire des outils pour les aficionados de la souris…:)
Merci à toi, je connaissais Glade mais pas le frontend php 😉 Mon billet a été mis à jour
Je cherche à transformer mes application web créer en php en application windows. J’ai bien vu qu’il fallait utiliser Bambalam mais le problème je ne sais pas comment ça marche. Je double clique sur bamcomplile.exe mais rien ne se passe que faut-il faire ? Une fenêtre noire appara^t et disparaît
Ou peuton trouver un tutotiel ?
Merci d’avance pour ton aide
A+
Merci pour ce petit article. Je connaissait que php-gtk et je cherchait comment faire un .exe qui fonctionne sous windows. Maintenant je sais. Merci beaucoup.