Lorsqu'on commence à maîtriser un langage puissant tel que PHP, on est tenté de l'utiliser pour tout type de programmation, par enthousiasme, mais aussi par souci d'efficacité.
Cependant, alors que nous savons tous comment utiliser PHP au travers d’un serveur Web ou en ligne de commande, nous avons beaucoup moins de pratique pour créer une application Desktop, monoposte ou client-serveur, qui plus est, en exploitant l’interface native du système.
En effet, comment fournir un logiciel clé en main avec son installateur ou directement un « .exe » pour Windows ou un « .app » pour Mac OS ? Comment éviter d’avoir à installer successivement Apache, PHP et MySQL, ou du moins ne pas entrer en conflit avec des instances potentiellement déjà présentes ?
Nous évoquerons les différentes réponses existantes, de la plus « Geek » à la plus « RAD » en passant par Flex, Java, GTK2 et d’autres solutions surprenantes.
(Presentation Forum Php Paris 2009)
2. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Lorsqu'on commence à maîtriser un langage puissant tel que PHP, on est tenté de
l'utiliser pour tout type de programmation, par enthousiasme, mais aussi par souci
d'efficacité.
Cependant, alors que nous savons tous comment utiliser PHP au travers d’un serveur Web
ou en ligne de commande, nous avons beaucoup moins de pratique pour créer une
application Desktop, monoposte ou client-serveur, qui plus est, en exploitant l’interface
native du système.
En effet, comment fournir un logiciel clé en main avec son installateur ou directement un
« .exe » pour Windows ou un « .app » pour Mac OS ? Comment éviter d’avoir à installer
successivement Apache, PHP et MySQL, ou du moins ne pas entrer en conflit avec des
instances potentiellement déjà présentes ?
Nous allons évoquer les différentes réponses existantes, de la plus « Geek » à la plus «
RAD » en passant par Flex, Java, GTK2 et d’autres solutions surprenantes.
4. Réalisation d’applications Desktop Windows/Mac Os avec PHP
4D et PHP
• La société
• Réalisation du driver PDO_4D avec Alter-Way
• Membre de l’AFUP depuis 2009
• Sponsor du FORUM PHP Paris 2009
• Intégration de PHP 5.3 dans 4D v12
• Le présentateur
• Product Manager responsable des technos PHP
• Zend Certified PHP Engineer
• 10 ans d'expérience sur des projets PHP
14. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Développement
• Installation de l’environnement
• Apprentissage des outils et/ou langages
• Design de la base de données
• Design de l’interface utilisateur
• Données et utilisateur de test
• Débogage
16. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation de l’environnement
• Votre environnement de développement habituel
(Zend Studio, NetBeans, PHPEd, PHP Edit, ...)
• Préférer le même moteur que celui ...)
(Zend Server, XAMPP, WAMP, MAMP,
déployé
17. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation de l’environnement
• Roadsend PHP, MySQL ?
• GTK, PHP-GTK
• Votre environnement de développement habituel
(Zend Studio, NetBeans, PHPEd, PHP Edit, ...)
• Glade
18. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation de l’environnement
• Roadsend PHP, MySQL ?
• Qt, PHP-Qt
• de préférence PDE Eclipse, Qt Designer
19. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation de l’environnement
• De préférence NetBeans ou Eclipse
• Préférer le même moteur que celui déployé
(Zend Server, XAMPP, WAMP, MAMP, ...)
20. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation de l’environnement
• De préférence Eclipse (Flex Builder)
• Préférer le même moteur que celui déployé
(Zend Server, XAMPP, WAMP, MAMP, ...)
21. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation de l’environnement
• 4D
• Votre éditeur de code PHP habituel
(Zend Studio, NetBeans, PHPEd, PHP Edit, ...)
23. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Apprentissage des outils et/ou langages
• Mozilla Prism (ou un jour Google Chrome) :
• tout va bien
• GTK, QT:
• nouvelle API
• nouveaux outils
• Java, Flex, 4D :
• nouveau langage
• nouveaux outils
37. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Débogage
• Débogage du code non PHP
• Débogage du PHP
• Remontées d’erreurs PHP dans l’outil
38. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Déploiement
• Publication de l'exécutable
• Installation sur les postes utilisateurs
39. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Publication de l'exécutable
• Mozilla Prism, GTK, Java, Flex : Phar
• GTK, QT: RoadSend Compiler
• Java : Jar
• Flex : AIR
• 4D : Compilation Windows et/ou Mac OS
40. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation sur les postes utilisateurs
• Mozilla Prism, Java, Flex: au choix Zend Server, XAMPP, WAMP, MAMP
• Mozilla Prism : Mozilla Firefox avec plugin Prism
• GTK2, QT: MySQL ?
• Java : JVM
• Flex : Adobe AIR
• 4D : Drag & Drop de l'exécutable
41. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation sur les postes utilisateurs
• data Sqlite
• fichier data intégré dans le dossier de l’application
• data MySQL
• Dump import
• 4D
• data déjà intégré dans le package
42. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Comparaison Application Desktop en PHP
CRITÈRES PHP + PRISM PHP-GTK PHP-QT JAVA + PHP FLEX + PHP 4D V12 PHP
Développement
Licence Open source Open source Open source GPL Open source Mixte Commerciale
Installation Bien Mauvais Mauvais Convenable Convenable Optimal
Apprentissage Aucun GTK + Roadsend + outils QT + Roadsend + outils Java + outil Flex + outil 4D + outil
Design base de données Convenable Convenable Bien Convenable Convenable Optimal
Design interface Mixte Bien Bien Bien Bien Bien
Editeur de code Mixte Convenable Convenable Excellent Bien Mixte
Données et utilisateurs test Convenable Convenable Convenable Convenable Bien Bien
Débogage Convenable Mauvais Mixte Mixte Mixte Bien
Coût gratuit / mixte gratuit / mixte gratuit gratuit gratuit / 214 / 600 / 299 / 999
Déploiement
Publication de l'exécutable Convenable Convenable Convenable Convenable Excellent Optimal
Installation sur le poste utilisateur Convenable Convenable Bien Convenable Convenable Optimal
Niveau d’intégration Mauvais Convenable Convenable Bien Excellent Optimal
Coût gratuit gratuit gratuit gratuit gratuit gratuit
44. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Faire son choix
• Combien de temps puis-je me permettre de consacrer à
l’installation et l'appréhension de mon nouvel environnement
de développement ?
• Quelles autres technologies maîtrise-je en plus de PHP ?
• Ai-je besoin d’une base de données, de quelle taille ?
• Quelle est la configuration déjà présente sur les postes cibles ?
• Dois-je déployer sur un seul ou de nombreux postes ?
• Investir dans un produit commercial est-il envisageable compte
tenu de l’objectif visé ?
45. Réalisation d’applications Desktop Windows/Mac Os avec PHP
Plus d’infos
4D v12 : 1er semestre 2010
http://www.4d.com
@amorgaut
@amorgaut/fourd
@amorgaut/php
http://php.net/pdo_4d
http://pecl.php.net/pdo_4d