45
Réalisa’on d’applica’ons Desktop Windows / Mac OS avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Embed Size (px)

DESCRIPTION

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)

Citation preview

Page 1: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisa'ond’applica'onsDesktopWindows/MacOSavecPHP

Page 2: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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.

Page 3: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

4D doit

supporter PHP

Page 4: Réalisation d’applications Desktop Windows/Mac Os avec 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

Page 5: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

4D et PHP

Page 6: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Solutions pour applications Desktop

Page 7: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Mozilla Prism / Google Chrome

• Cache le navigateur

• Base de données côté client

Page 8: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 9: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 10: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

PHP via Java

• JavaBridge

• Quercus PHP engine

Page 11: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Flex

• Adobehttp://www.adobe.com/devnet/flex/flex_php.html

• AMFPHP

Page 12: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

4D v12

• PHP embarqué (5.3)

• Base de données intégrée

Page 13: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

1 - Développement

2 - Déploiement

Page 14: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 15: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Installation de l’environnement

Page 16: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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, ...)

Page 17: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 18: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 19: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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, ...)

Page 20: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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, ...)

Page 21: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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, ...)

Page 22: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Apprentissage des outils et/ou langages

Page 23: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 24: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de la base de données

Page 25: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de la base de données

• PHPmyAdmin

• Visual Architect pour Eclipse

Page 26: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de la base de données

• 4D

Page 27: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de l’interface

Page 28: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de l’interface

• Dreamweaver, Zend Studio

Page 29: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de l’interface• GTK - Glade

Page 30: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de l’interface

• Qt Designer

Page 31: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de l’interface• Netbeans

Page 32: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de l’interface• Flex

Page 33: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Design de l’interface• 4D

Page 34: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Données et utilisateur de test

Page 35: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Données et utilisateur de test

• PhpMyAdmin ?

• Formulaire entrée/sortie ?

• Flush ?

• Utilisateurs & Groupes

Page 36: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Débogage

Page 37: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 38: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

• Publication de l'exécutable

• Installation sur les postes utilisateurs

Déploiement

Page 39: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 40: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 41: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 42: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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

Page 43: Réalisation d’applications Desktop Windows/Mac Os avec PHP

Réalisation d’applications Desktop Windows/Mac Os avec PHP

Faire son choix

Page 44: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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é ?

Page 45: Réalisation d’applications Desktop Windows/Mac Os avec PHP

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