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».
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:
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.
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.
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.
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.
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.
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.
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>
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:
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.
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.
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!
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.
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.
Qu'est-ce que PHP-GTK et comment peut-il être utilisé pour le développement d'applications de bureau?
Comment puis-je distribuer mon application PHP Desktop?
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.
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.
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.
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.
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!