Maison > développement back-end > tutoriel php > 3 façons de développer des applications de bureau croisé avec PHP

3 façons de développer des applications de bureau croisé avec PHP

Christopher Nolan
Libérer: 2025-02-19 09:26:10
original
637 Les gens l'ont consulté

3 façons de développer des applications de bureau croisé avec PHP

PHP en tant que langage de développement d'applications de bureau multiplateforme? Blasphème! Néanmoins, c'est possible.

Il y a quelques années, tout ce que ceux qui souhaitent apporter PHP avaient au bureau avaient été le GTK PHP désormais abandonné. Depuis lors, de nouveaux joueurs sont apparus, mais répondons d'abord au «pourquoi».

Les plats clés

  • PHP peut être utilisé pour développer des applications de bureau multiplateforme, malgré son utilisation principale dans le développement Web. L'article discute de trois outils principaux à ce sujet: Nightrain, WXPHP et Tidesdk.
  • Nightrain est un ensemble préemballé de conditions préalables à l'hébergement PHP, idéal pour les applications rudimentaires. Cependant, il a des limites, notamment le lancement d'une invite de commande sur Windows, qui peut confondre les utilisateurs non techniques, et l'incapacité d'exécuter plusieurs applications simultanément sans modifier les paramètres.
  • WXPHP est une extension PHP qui enveloppe la bibliothèque WXWidgets, permettant la création d'applications de bureau multiplateforme. Il offre une expérience utilisateur plus simple, les applications étant de simples fichiers qui peuvent être exécutées avec un double clic, mais qui manque de fonctionnalités HTML5 et a une courbe d'apprentissage.
  • Tidesdk est un projet open-source qui utilise HTML, CSS, JS et d'autres langages de script comme PHP pour rendre des applications. Cependant, il a plusieurs inconvénients, notamment une version PHP obsolète, une API DOM différente et la nécessité de plusieurs environnements pour créer l'application pour différentes plates-formes.
  • D'autres options comme PHPDESKTOP, Webinder et PHP GTK sont dépassées, exclusives, ou les deux, ce qui les rend moins viables pour les solutions multiplateformes.
  • Bien que le développement d'applications PHP pour le bureau ne soit pas toujours justifiée, sachant que l'option existe peut être utile pour certains scénarios.

Pourquoi?

3 façons de développer des applications de bureau croisé avec PHP

Pourquoi développerait-il des applications PHP croisées pour le bureau? Pourquoi ne pas opter pour quelque chose qui peut réellement lier aux API de bas niveau du système d'exploitation, comme Adobe Air? Pourquoi ne pas aller avec quelque chose de obsolète et gonflé mais fiable, comme Java? Pourquoi ne pas en faire une application Chrome et si vous avez besoin d'une prise en charge native, utilisez le client natif? Enfer, si vous voulez une langue de script, pourquoi ne pas simplement aller avec Python? Tout se passe, tant que nous évitons d'avoir à regrouper un serveur avec l'ensemble du shebang, non?

du haut de ma tête, je peux penser à plusieurs scénarios farfelus:

  1. Vous avez besoin d'un bon juste milieu entre la syntaxe facile et la bonne structure, qui est PHP, et vous ne pouvez pas être dérangé pour apprendre de nouvelles langues comme ActionScript
  2. Vous l'exécutez dans une entreprise avec des personnes analphabètes hautement informatiques, et la seule façon de les forcer à utiliser un bon navigateur pour votre application d'entreprise est de l'intégrer dans l'application que vous fournissez. C'est toujours une application Web, mais s'ouvre dans un chrome sans tête!
  3. Vous souhaitez éviter de payer les frais d'hébergement pour votre propre candidature personnelle, et vous aimez le transporter avec vous sur un bâton USB. Vous le branchez simplement, l'exécutez et votre application est là - en utilisant la même base de données SQLite d'avant. Si vous devez vous synchroniser en ligne, vous envoyez toute l'exportation DB vers Dropbox ou un tel service en cliquant sur un bouton, en vous assurant que vous êtes littéralement le seul à pouvoir accéder à votre «application Web» même sans votre ordinateur.
  4. Vous n'avez pas besoin d'accès à l'API OS à bas niveau - vous voulez juste faire un jeu basé sur un navigateur, une application d'aide, ou quelque chose de similaire. PHP est parfaitement bien pour cela, et vous connaissez déjà la langue.

Ces scénarios peuvent ressembler à saisir les pailles, et en effet, je ne peux vraiment pas penser à une raison réelle et pratique de vouloir le faire qui n'a pas une alternative viable. Pourtant, c'est bien de savoir que c'est possible. Voyons comment.

1. Nightrain

Nightrain est un ensemble préemballé de prérequis de l'hébergement PHP alimenté par PHP 5.5.x en ce moment. Il s'agit d'un packager écrit en Python qui utilise le serveur interne de PHP pour héberger votre application, évitant ainsi Apache et Nginx et minimisant les manigances de configuration. Cependant, cela signifie également que certains aspects plus avancés ne sont pas disponibles, et vous ne pouvez vraiment l'utiliser que pour des applications très rudimentaires.

Un autre grand con est que sur Windows, une invite de commande est d'abord lancée, puis «l'application». Les fenêtres de commande doivent rester ouvertes si vous souhaitez utiliser l'application, et cela pourrait être plus qu'un peu déroutant pour les personnes techniquement analphabètes du scénario 2) ci-dessus.

3 façons de développer des applications de bureau croisé avec PHP

De plus, vous ne pouvez exécuter qu'une seule application Nightrain par défaut, car il lance réellement un serveur sur le port 8000, puis fait le navigateur sans tête qui ouvre «secrètement», visitez LocalHost: 8000. Si vous souhaitez lancer plusieurs applications Nightrain différentes, vous devez modifier le port dans Settings.ini. Cela signifie également que la simple visite de localhost: 8000 dans le navigateur de votre machine hôte vous montrera la même application.

Nightrain est compatible avec la plupart des applications / frameworks PHP hors de la boîte, tant que vous modifiez la base de données en SQLite, qui est ce qui est utilisé, et modifiez le php.ini groupé pour certaines extensions manquantes, le cas échéant. MySQL n'est pas groupé et l'installer aux côtés de la pile régulière n'est pas simple. Il est très simple de faire en sorte que l'application envoie les données SQLite en amont à un serveur que vous utilisez pour une base de données centralisée de toute façon, donc en utilisant uniquement SQLite sur le système où l'application s'exécute est quelque peu logique.

De loin, le plus gros inconvénient de l'application est qu'il utilise des widgets WX pour alimenter le navigateur sans tête, et sur Windows, cela semble se résumer à IE7. Le changement semble possible, au moyen de Wxpython, comme mentionné dans le problème lié ci-dessus, mais n'a pas encore été tenté. On ne peut qu'espérer que l'objet du navigateur sera mis à jour vers quelque chose de plus utilisable un certain temps - jusque-là, et jusqu'à ce que tous les autres inconvénients critiques soient fixes, je ne peux même pas commencer à imaginer une utilisation pour Nightrain.

2. Wxphp

WXPHP signifie «WxWidgets for PHP» et est une extension PHP qui enveloppe la bibliothèque WXWidgets, qui permet d'écrire des applications de bureau multiplateforme qui utilisent les composants graphiques natifs disponibles sur les différentes plates-formes. - wikipedia

Vous installez WXPHP en tant que programme distinct, qui vous donne ensuite une prise en charge de l'exécution des fichiers .wxPHP en leur doublant simplement.

3 façons de développer des applications de bureau croisé avec PHP

Cela signifie que vos applications sont de simples fichiers, et vous pouvez les distribuer partout avec facilité. Vous pouvez organiser votre code en fichiers et classes comme d'habitude et distribuer des dossiers. Le fichier .wxphp principal peut alors inclure ces autres ressources.

L'installation est livrée avec plusieurs exemples, dont un qui initialise WebView et charge le site Web WXPHP dans un cadre WX. Une chose à noter est qu'avec WXPHP, vous ne développez pas de sites Web comme vous le feriez sur le Web. En d'autres termes, vous ne développez pas de sites Web hors ligne, mais fixez ensemble divers widgets WX. En tant que tel, la bibliothèque a un peu de courbe d'apprentissage, et vous manquerez les fonctionnalités HTML5 auxquelles vous pourriez être habitué, ou la simplicité du développement Web. Il y a une preuve de concept du serveur PHP interne exécutant les demandes de fonctionnement, mais c'est expérimental et complexe, et expose encore une fois le Host local, tout comme Nightrain.

WXPHP est également livré avec un adorable outil de construction de formulaires qui vous aidera automatiquement à générer le code PHP dont vous avez besoin pour vos applications WXPHP au moyen d'un éditeur WYSIWYG.

3 façons de développer des applications de bureau croisé avec PHP 3 façons de développer des applications de bureau croisé avec PHP

Avant de rejeter WX comme trivial, les gens y ont développé plus que des applications de base. Par exemple, voici un éditeur PHP avec débogage à distance et une API de plugin.

Si vous êtes sérieux au sujet du développement du bureau PHP, WXPHP est de loin la meilleure option par rapport à Nightrain, même si Nightrain vous permet d'écrire un bon vieux HTML pour GUI.

L'un des plus grands avantages de WX ici est le fait qu'une fois installé, tous les fichiers .wxphp peuvent être exécutés au clic de la souris. Pas d'installations supplémentaires, pas de fenêtres de console maladroites. Pour les personnes techniquement analphabètes, c'est une aubaine - vous pouvez facilement distribuer l'application au sein de votre entreprise via un simple e-mail, et la procédure de mise à jour est aussi simple que d'écraser un fichier.

3. Tidesdk

Tidesdk a une approche quelque peu différente de celle des deux ci-dessus. Vous installez un SDK pour pouvoir développer des applications, et chaque plate-forme a certaines conditions préalables. Tidesdk est en fait le projet de bureau Titanium renommé. Titanium est resté concentré sur le mobile et a abandonné la version de bureau, qui a été repris par certaines personnes qui l'ont ouvert et l'ont surnommée Tidesdk.

Une fois installé conformément au Guide de démarrage, et une fois que nous avons l'application TidesDK Developer (une application d'aide qui nous guidera pour regrouper notre application dans un package distribuable), nous pouvons commencer à développer. Les applications que vous construisez avec Tide (via l'application d'aide ou via la ligne de commande) seront à la fois distribuables comme purement exécutables, ou peuvent être distribuées en tant que packages installables qui procurent l'ensemble du traitement «d'application», y compris une procédure d'installation intégrée, ce qui les rend ininstalables via des programmes ADD / Supprimer sur Windows ou vos gestionnaires de packages sur d'autres systèmes d'exploitation.

Les ressources d'applications sont utilisées en conjonction avec un client WebKit et une API familière et étendue. L'API est privilégiée, fournissant un accès au système de fichiers qui vous permet de lire et de gérer des fichiers. Des API sont également fournies pour créer et interagir avec une base de données locale. L'API réseau permet de créer des clients et des serveurs ou d'interfacer avec HTTP à un niveau beaucoup plus faible. Il est également possible d'ouvrir des connexions de socket à d'autres services.

Généralement, Tidesdk utilise HTML, CSS et JS pour rendre des applications, mais il prend également en charge les langages scénarisés comme Python, Ruby et PHP. Le moteur derrière le rendu est WebKit, ce qui signifie qu'il sera quelque peu lent à démarrer, mais il prendra en charge les dernières technologies Web.

Le cœur de Tidesdk est un pont d'objet compilé dans le composant WebKit. Le pont permet à d'autres langages de script - Python, PHP ou Ruby - d'exécuter sur la page HTML à l'aide de balises de script dans le DOM, tout comme JavaScript. Vous pouvez également appeler directement les fichiers .py, .rb ou .php à partir de votre application.

PHP est activé en ajoutant une instruction de module au fichier manifeste, comme ainsi:

<span>#appname:HelloWorld
</span><span>#appid:com.tidesdk.helloworld
</span><span>#publisher:Software in the Public Interest (SPI) Inc
</span><span>#image:default_app_logo.png
</span><span>#url:http//tidesdk.org
</span><span>#guid:845e9c3c-c9ff-4ad4-afdf-9638092f044f
</span><span>#desc:Sample Hello World application
</span><span>#type:desktop
</span><span>runtime:1.3.1-beta
</span><span>app:1.3.1-beta
</span><span>codec:1.3.1-beta
</span><span>database:1.3.1-beta
</span><span>filesystem:1.3.1-beta
</span><span>media:1.3.1-beta
</span><span>monkey:1.3.1-beta
</span><span>network:1.3.1-beta
</span><span>platform:1.3.1-beta
</span><span>process:1.3.1-beta
</span><span>ui:1.3.1-beta
</span><span>worker:1.3.1-beta
</span><span>php:1.3.1-beta</span>
Copier après la connexion

Notez que l'utilisation des modules de script pour les langages de script entraînera des pénalités de performances significatives sur l'installation et l'exécution de votre ou vos applications.

Fait intéressant, TidesDK propose un pont d'objet qui vous permet, lorsque vous utilisez PHP dans vos applications, convertissez les données de manière transparente de JS à PHP et retour. Vous pouvez en savoir plus ici, mais un tutoriel Tidesdk détaillé arrive bientôt.

Il y a plusieurs inconvénients majeurs à utiliser TIDESDK pour le développement d'applications de bureau PHP:

  1. Le workflow de développement PHP est gravement sous-comis et très sensible aux bugs, mais presque impossible à déboguer.
  2. La version PHP groupée est terriblement dépassée - version 5.3.x au moment de la rédaction de cet article. Bien qu'il soit relativement facile de le remplacer par un à jour via le dossier / modules dans le répertoire d'installation du SDK, c'est une nuisance supplémentaire et manque de nombreuses fonctionnalités PHP modernes qui pourraient être utiles dans le développement d'applications de bureau, sans parler du serveur intégré qui pourrait également obtenir un cas d'utilisation ésotérique ici.
  3. Il y a une courbe d'apprentissage. L'API DOM est différente de ce à quoi vous pourriez être habitué dans le développement Web. Pour faire écho à quelque chose à l'écran, vous devrez appeler $ document-> write () plutôt qu'écho. C'est une différence mineure, mais elle n'est pas bien documentée et peut vous faire trébucher.
  4. de loin le plus gros inconvénient est la compilation. Le package que vous obtenez en créant une application est lié à la plate-forme sur laquelle vous l'avez construite. Pour créer l'application pour plusieurs environnements, vous devez avoir ces environnements multiples. La disparité Windows / Linux est facilement résolue avec des machines virtuelles (bien que plus facile à résoudre si votre hôte est Window , aussi.

Tidesdk est une option soignée, mais elle est loin d'être utilisable. Il fera du bien pour la livraison HTML / CSS / JS, mais en ce qui concerne PHP, je crois que WXPHP est toujours votre meilleur pari.

Autres options

Il existe également d'autres options, mais ils sont pour le moins décevant.

  • phpdesktop est similaire à Nightrain, mais est uniquement Windows. D'un autre côté, il est livré avec le serveur Mongoose et peut ainsi exécuter des demandes parallèles. Il exécute également Chrome, ce qui signifie qu'il est lent à rendre / ouvert, mais prend en charge les dernières technologies Web. Son exclusivité Windows le disqualifie à partir de cette liste de solutions multiplateformes, cependant.

  • Webinder et PHP GTK sont tous deux gravement dépassés et ne devraient probablement pas être utilisés. En plus de cela, Webinder est uniquement Windows.

Conclusion

Bien que les raisons de la création d'applications PHP pour le bureau varient d'un cas d'utilisation en passant par le cas d'utilisation et ne sont souvent pas faciles à justifier, je crois qu'il est bon de savoir que l'option est là, si jamais vous en avez besoin.

Avez-vous développé des applications de bureau dans PHP? Si oui, s'il vous plaît, laissez-moi savoir pourquoi et quelle technologie vous avez utilisée - j'aimerais absolument vous faire écrire sur vos expériences. Vous connaissez d'autres options? Faites-moi savoir dans les commentaires!

Questions fréquemment posées (FAQ) sur le développement d'applications de bureau multiplateforme avec PHP

Quels sont les avantages de l'utilisation de PHP pour le développement d'applications de bureau?

PHP est un langage de script polyvalent utilisé principalement pour le développement Web. Cependant, il peut également être utilisé pour le développement d'applications de bureau en raison de ses nombreux avantages. Premièrement, PHP est multiplateforme, ce qui signifie qu'il peut fonctionner sur divers systèmes d'exploitation comme Windows, Linux et MacOS. Cela le rend idéal pour développer des applications de bureau pouvant fonctionner sur n'importe quelle plate-forme. Deuxièmement, PHP a une grande communauté de développeurs, ce qui signifie que vous pouvez facilement trouver des ressources et aider lorsque vous rencontrez des problèmes. Enfin, PHP est facile à apprendre et à utiliser, ce qui en fait un excellent choix pour les débutants dans le développement d'applications de bureau.

Puis-je utiliser PHP pour développer des applications de bureau complexes?

Oui, PHP peut être utilisé pour développer des applications de bureau complexes. Bien que PHP soit traditionnellement utilisé pour le développement Web, il a évolué au fil des ans et comprend désormais des fonctionnalités qui permettent le développement d'applications de bureau complexes. Il s'agit notamment de la programmation orientée objet, de la gestion des exceptions et des espaces de noms. De plus, il existe plusieurs frameworks et outils PHP comme PHP Desktop et PHP-GTK qui peuvent aider à créer des applications de bureau complexes.

Comment fonctionne PHP. vous pour développer des applications de bureau multiplateforme à l'aide de PHP. Il intègre un serveur Web, un interprète PHP, un navigateur et un moteur JavaScript dans un seul package. Cela signifie que vous pouvez rédiger votre application à l'aide de PHP et qu'il s'exécutera en tant qu'application de bureau autonome. PHP Desktop gère tous les processus backend, vous n'avez donc pas à vous soucier de configurer un serveur ou de configurer un environnement PHP.

Qu'est-ce que PHP-GTK et comment peut-il être utilisé pour le développement d'applications de bureau?

PHP-GTK est une extension pour PHP qui fournit un ensemble de liaisons PHP pour la boîte à outils GTK. GTK est une bibliothèque utilisée pour créer des interfaces utilisateur graphiques. Avec PHP-GTK, vous pouvez créer des applications de bureau qui ont une interface utilisateur graphique, comme toute autre application de bureau. PHP-GTK fournit un moyen d'écrire de telles applications à l'aide de PHP, ce qui peut être un grand avantage si vous êtes déjà familier avec PHP.

Comment puis-je distribuer mon application PHP Desktop?

Une fois Vous avez développé votre application PHP Desktop, vous pouvez la distribuer comme toute autre application de bureau. Si vous utilisez un outil comme PHP Desktop, votre application sera emballée dans un seul fichier exécutable. Ce fichier peut être distribué et exécuté sur n'importe quel ordinateur, sans avoir besoin pour l'utilisateur d'installer PHP ou de configurer un serveur Web.

Puis-je accéder aux ressources système avec des applications de bureau PHP?

Oui, les applications PHP Desktop peuvent accéder aux ressources système. PHP possède plusieurs fonctions intégrées qui vous permettent d'interagir avec le système de fichiers, le réseau et d'autres ressources système. Cependant, gardez à l'esprit que l'accès aux ressources du système peut présenter des risques de sécurité, il est donc important de suivre les meilleures pratiques de sécurité lors du développement de votre application.

Quelles sont les limites de l'utilisation de PHP pour le développement d'applications de bureau?

Bien que PHP puisse être utilisé pour le développement d'applications de bureau, il a certaines limites. Le PHP n'est pas aussi rapide que les langages compilés comme C ou Java, donc il peut ne pas convenir aux applications qui nécessitent des performances élevées. De plus, PHP n'est pas conçu pour le développement d'applications de bureau, il manque donc certaines fonctionnalités qui sont courantes dans d'autres langages de développement d'applications de bureau. Cependant, des outils comme PHP Desktop et PHP-GTK peuvent aider à surmonter certaines de ces limitations.

Puis-je utiliser le code PHP existant pour le développement d'applications de bureau?

Oui, vous pouvez utiliser le code PHP existant pour Développement d'applications de bureau. Si vous avez une application Web PHP, vous pouvez la convertir en une application de bureau à l'aide d'un outil comme PHP Desktop. Cela peut vous faire économiser beaucoup de temps et d'efforts, car vous n'avez pas besoin de réécrire votre application à partir de zéro.

Comment puis-je déboguer mon application PHP Desktop?

Débogage d'une application de bureau PHP est similaire au débogage d'une application Web PHP. Vous pouvez utiliser les fonctions de rapport d'erreur intégrées de PHP pour afficher les erreurs. De plus, vous pouvez utiliser un débogueur PHP comme XDebug pour parcourir votre code et trouver des bogues. Certains outils de développement de bureau PHP fournissent également des fonctionnalités de débogage.

Puis-je utiliser des bases de données avec des applications PHP Desktop?

Oui, vous pouvez utiliser des bases de données avec des applications de bureau PHP. PHP prend en charge une large gamme de bases de données, notamment MySQL, PostgreSQL et SQLite. Vous pouvez utiliser les fonctions de base de données intégrées de PHP ou une couche d'abstraction de base de données comme PDO pour interagir avec votre base de données. Cela vous permet de stocker et de récupérer des données, comme dans une application Web PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal