SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
Réalisa'on
d’applica'ons
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.
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

             • Adobe
               http://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




                                  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
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 ...)
              (Zend Server, XAMPP, WAMP, MAMP,
                                                déployé
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




                                          Déploiement


             • Publication de l'exécutable
             • Installation sur les postes utilisateurs
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                                 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
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

Contenu connexe

Tendances

Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixteAlphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixteAlphorm
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphipprem
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)Saïd Radhouani
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Xavier Lacot
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 
eZ Publish Platform 5.2 - Webinaire d'introduction
eZ Publish Platform 5.2 - Webinaire d'introductioneZ Publish Platform 5.2 - Webinaire d'introduction
eZ Publish Platform 5.2 - Webinaire d'introductionRoland Benedetti
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3Nicolas Lœuillet
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilespprem
 
Principes De Base De Asp .Net
Principes De Base De Asp .NetPrincipes De Base De Asp .Net
Principes De Base De Asp .NetGregory Renard
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 
alphorm.com - Formation Windows 8.1 (70-687)
alphorm.com - Formation Windows 8.1 (70-687)alphorm.com - Formation Windows 8.1 (70-687)
alphorm.com - Formation Windows 8.1 (70-687)Alphorm
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontZenika
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyXavier Gorse
 
AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelecjulien pauli
 
Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Ippon
 

Tendances (20)

Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixteAlphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
 
Comment développer pour Linux avec Delphi
Comment développer pour Linux avec DelphiComment développer pour Linux avec Delphi
Comment développer pour Linux avec Delphi
 
Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
 
Native script
Native scriptNative script
Native script
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
eZ Publish Platform 5.2 - Webinaire d'introduction
eZ Publish Platform 5.2 - Webinaire d'introductioneZ Publish Platform 5.2 - Webinaire d'introduction
eZ Publish Platform 5.2 - Webinaire d'introduction
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobiles
 
Principes De Base De Asp .Net
Principes De Base De Asp .NetPrincipes De Base De Asp .Net
Principes De Base De Asp .Net
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 
alphorm.com - Formation Windows 8.1 (70-687)
alphorm.com - Formation Windows 8.1 (70-687)alphorm.com - Formation Windows 8.1 (70-687)
alphorm.com - Formation Windows 8.1 (70-687)
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. Darmont
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
AFUP & PHP @ Supelec
AFUP & PHP @ SupelecAFUP & PHP @ Supelec
AFUP & PHP @ Supelec
 
Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014
 
Java Fx Rapport
Java Fx RapportJava Fx Rapport
Java Fx Rapport
 

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

La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsMicrosoft
 
MUG Strasbourg - Back From Build
MUG Strasbourg - Back From BuildMUG Strasbourg - Back From Build
MUG Strasbourg - Back From Buildmugstrasbourg
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
ASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marcheASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marcheMicrosoft
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPJean-Marc Fontaine
 
L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidChris Saez
 
Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHPMoncef Essid
 
Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Microsoft
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 LyonLeTesteur
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distancepprem
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditauto entrepreneur
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Firas Kouẞàa
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobileMartin Arvisais
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 

Similaire à Réalisation d’applications Desktop Windows/Mac Os avec PHP (20)

La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
 
43_pps.pdf
43_pps.pdf43_pps.pdf
43_pps.pdf
 
MUG Strasbourg - Back From Build
MUG Strasbourg - Back From BuildMUG Strasbourg - Back From Build
MUG Strasbourg - Back From Build
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
ASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marcheASP.NET 5: la révolution est en marche
ASP.NET 5: la révolution est en marche
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & Android
 
Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHP
 
Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 Lyon
 
Déploiement et débogage à distance
Déploiement et débogage à distanceDéploiement et débogage à distance
Déploiement et débogage à distance
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpedit
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobile
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 

Plus de Alexandre Morgaut

Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...Alexandre Morgaut
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Alexandre Morgaut
 
angular-wakanda ngParis meetup 15 at 42
angular-wakanda ngParis meetup 15 at 42angular-wakanda ngParis meetup 15 at 42
angular-wakanda ngParis meetup 15 at 42Alexandre Morgaut
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Alexandre Morgaut
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Alexandre Morgaut
 
HTML5 in automotive - web2day 2014
HTML5 in automotive  - web2day 2014HTML5 in automotive  - web2day 2014
HTML5 in automotive - web2day 2014Alexandre Morgaut
 
JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)Alexandre Morgaut
 
Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)Alexandre Morgaut
 
End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013Alexandre Morgaut
 
From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaAlexandre Morgaut
 
NoSQL and JavaScript: a love story
NoSQL and JavaScript: a love storyNoSQL and JavaScript: a love story
NoSQL and JavaScript: a love storyAlexandre Morgaut
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Alexandre Morgaut
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeAlexandre Morgaut
 
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) EuropeWakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) EuropeAlexandre Morgaut
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012Alexandre Morgaut
 
NoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love StoryNoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love StoryAlexandre Morgaut
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Alexandre Morgaut
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Alexandre Morgaut
 
State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012Alexandre Morgaut
 

Plus de Alexandre Morgaut (20)

Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
Lint, coverage, doc, autocompletion, transpilation, minification... powered b...
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017
 
angular-wakanda ngParis meetup 15 at 42
angular-wakanda ngParis meetup 15 at 42angular-wakanda ngParis meetup 15 at 42
angular-wakanda ngParis meetup 15 at 42
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
 
HTML5 in automotive - web2day 2014
HTML5 in automotive  - web2day 2014HTML5 in automotive  - web2day 2014
HTML5 in automotive - web2day 2014
 
JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)JS in SMS - JS.everywhere(2013)
JS in SMS - JS.everywhere(2013)
 
Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)Js in Automotive - JS.everywhere(2013)
Js in Automotive - JS.everywhere(2013)
 
End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013
 
From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with Wakanda
 
NoSQL and JavaScript: a love story
NoSQL and JavaScript: a love storyNoSQL and JavaScript: a love story
NoSQL and JavaScript: a love story
 
Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29Wakanda - apps.berlin.js - 2012-11-29
Wakanda - apps.berlin.js - 2012-11-29
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) Europe
 
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) EuropeWakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
Wakanda and the top 5 security risks - JS.everyrwhere(2012) Europe
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012
 
End-to-end W3C APIs
End-to-end W3C APIsEnd-to-end W3C APIs
End-to-end W3C APIs
 
NoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love StoryNoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love Story
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
 
State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012State of the art - server side JavaScript - web-5 2012
State of the art - server side JavaScript - web-5 2012
 

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

  • 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.
  • 3. Réalisation d’applications Desktop Windows/Mac Os avec PHP 4D doit supporter PHP
  • 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
  • 5. Réalisation d’applications Desktop Windows/Mac Os avec PHP 4D et PHP
  • 6. Réalisation d’applications Desktop Windows/Mac Os avec PHP Solutions pour applications Desktop
  • 7. Réalisation d’applications Desktop Windows/Mac Os avec PHP Mozilla Prism / Google Chrome • Cache le navigateur • Base de données côté client
  • 8. 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
  • 9. 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
  • 10. Réalisation d’applications Desktop Windows/Mac Os avec PHP PHP via Java • JavaBridge • Quercus PHP engine
  • 11. Réalisation d’applications Desktop Windows/Mac Os avec PHP Flex • Adobe http://www.adobe.com/devnet/flex/flex_php.html • AMFPHP
  • 12. Réalisation d’applications Desktop Windows/Mac Os avec PHP 4D v12 • PHP embarqué (5.3) • Base de données intégrée
  • 13. Réalisation d’applications Desktop Windows/Mac Os avec PHP 1 - Développement 2 - Déploiement
  • 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
  • 15. Réalisation d’applications Desktop Windows/Mac Os avec PHP Installation de l’environnement
  • 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, ...)
  • 22. Réalisation d’applications Desktop Windows/Mac Os avec PHP Apprentissage des outils et/ou langages
  • 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
  • 24. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de la base de données
  • 25. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de la base de données • PHPmyAdmin • Visual Architect pour Eclipse
  • 26. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de la base de données • 4D
  • 27. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de l’interface
  • 28. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de l’interface • Dreamweaver, Zend Studio
  • 29. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de l’interface • GTK - Glade
  • 30. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de l’interface • Qt Designer
  • 31. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de l’interface • Netbeans
  • 32. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de l’interface • Flex
  • 33. Réalisation d’applications Desktop Windows/Mac Os avec PHP Design de l’interface • 4D
  • 34. Réalisation d’applications Desktop Windows/Mac Os avec PHP Données et utilisateur de test
  • 35. Réalisation d’applications Desktop Windows/Mac Os avec PHP Données et utilisateur de test • PhpMyAdmin ? • Formulaire entrée/sortie ? • Flush ? • Utilisateurs & Groupes
  • 36. Réalisation d’applications Desktop Windows/Mac Os avec PHP Débogage
  • 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
  • 43. Réalisation d’applications Desktop Windows/Mac Os avec PHP Faire son choix
  • 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