Réalisa'ond’applica'onsDesktopWindows/MacOSavecPHP
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.
Réalisation d’applications Desktop Windows/Mac Os avec PHP
4D doit
supporter PHP
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
Réalisation d’applications Desktop Windows/Mac Os avec PHP
4D et PHP
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Solutions pour applications Desktop
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Mozilla Prism / Google Chrome
• Cache le navigateur
• Base de données côté client
Réalisation d’applications Desktop Windows/Mac Os avec PHP
PHP-GTK
• S’appuie sur la librairie GTK
• Soutenue par le PHP Group:http://gtk.php.net
Réalisation d’applications Desktop Windows/Mac Os avec PHP
PHP-Qt
• S’appuie sur la librairie Qt
• Zend ou Roadsend engine
http://www.php-qt.org
Réalisation d’applications Desktop Windows/Mac Os avec PHP
PHP via Java
• JavaBridge
• Quercus PHP engine
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Flex
• Adobehttp://www.adobe.com/devnet/flex/flex_php.html
• AMFPHP
Réalisation d’applications Desktop Windows/Mac Os avec PHP
4D v12
• PHP embarqué (5.3)
• Base de données intégrée
Réalisation d’applications Desktop Windows/Mac Os avec PHP
1 - Développement
2 - Déploiement
Réalisation d’applications Desktop Windows/Mac Os avec PHP
• 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
Développement
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Installation de l’environnement
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 déployé (Zend Server, XAMPP, WAMP, MAMP, ...)
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
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
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, ...)
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, ...)
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, ...)
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Apprentissage des outils et/ou langages
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
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de la base de données
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de la base de données
• PHPmyAdmin
• Visual Architect pour Eclipse
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de la base de données
• 4D
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de l’interface
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de l’interface
• Dreamweaver, Zend Studio
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de l’interface• GTK - Glade
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de l’interface
• Qt Designer
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de l’interface• Netbeans
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de l’interface• Flex
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Design de l’interface• 4D
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Données et utilisateur de test
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Données et utilisateur de test
• PhpMyAdmin ?
• Formulaire entrée/sortie ?
• Flush ?
• Utilisateurs & Groupes
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Débogage
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
Réalisation d’applications Desktop Windows/Mac Os avec PHP
• Publication de l'exécutable
• Installation sur les postes utilisateurs
Déploiement
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
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
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
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
Installation
Apprentissage
Design base de données
Design interface
Editeur de code
Données et utilisateurs test
Débogage
Coût
Déploiement
Publication de l'exécutable
Installation sur le poste utilisateur
Niveau d’intégration
Coût
Open source Open source Open source GPL Open source Mixte Commerciale
Bien Mauvais Mauvais Convenable Convenable Optimal
Aucun GTK + Roadsend + outils QT + Roadsend + outils Java + outil Flex + outil 4D + outil
Convenable Convenable Bien Convenable Convenable Optimal
Mixte Bien Bien Bien Bien Bien
Mixte Convenable Convenable Excellent Bien Mixte
Convenable Convenable Convenable Convenable Bien Bien
Convenable Mauvais Mixte Mixte Mixte Bien
gratuit / mixte gratuit / mixte gratuit gratuit gratuit / 214 / 600 / 299 / 999
Convenable Convenable Convenable Convenable Excellent Optimal
Convenable Convenable Bien Convenable Convenable Optimal
Mauvais Convenable Convenable Bien Excellent Optimal
gratuit gratuit gratuit gratuit gratuit gratuit
Réalisation d’applications Desktop Windows/Mac Os avec PHP
Faire son choix
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é ?
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
Top Related