Heim > Backend-Entwicklung > PHP-Tutorial > 3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP

3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP

Christopher Nolan
Freigeben: 2025-02-19 09:26:10
Original
638 Leute haben es durchsucht

3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP

PHP als plattformübergreifende Desktop-App-Entwicklungssprache? Blasphemie! Trotzdem ist es möglich.

Vor ein paar Jahren hatte alles, die daran interessiert waren, PHP auf den Desktop zu bringen, der inzwischen lange verlassene GTK -PHP. Seitdem sind neue Spieler erschienen, obwohl wir zunächst das „Warum“ beantworten.

Key Takeaways

  • PHP kann trotz der primären Verwendung in der Webentwicklung zur Entwicklung von plattformübergreifenden Desktop-Anwendungen verwendet werden. In dem Artikel werden drei Hauptwerkzeuge dafür erörtert: Nightrain, WXPHP und Tidesdk.
  • nightrain ist ein vorverpackter Satz von PHP-Hosting-Voraussetzungen, ideal für rudimentäre Apps. Es enthält jedoch Einschränkungen, einschließlich des Startens einer Eingabeaufforderung unter Windows, die nicht-technische Benutzer verwirren kann, und die Unfähigkeit, mehrere Apps gleichzeitig auszuführen, ohne die Einstellungen zu ändern.
  • WXPHP ist eine PHP-Erweiterung, die die WXWIDGETS-Bibliothek umhüllt und die Erstellung von Desktop-Anwendungen mit mehreren Plattform ermöglicht. Es bietet eine einfachere Benutzererfahrung, wobei Anwendungen nur Dateien sind, die mit einem Doppelklick ausgeführt werden können, aber es fehlen HTML5 -Funktionen und verfügen über eine Lernkurve.
  • tidesdk ist ein Open-Source-Projekt, bei dem HTML, CSS, JS und andere Skriptsprachen wie PHP verwendet werden, um Anwendungen zu rendern. Es verfügt jedoch über mehrere Nachteile, einschließlich einer veralteten PHP -Version, einer anderen DOM -API und der Notwendigkeit mehrerer Umgebungen, um die App für verschiedene Plattformen zu erstellen.
  • Andere Optionen wie PHPDesktop, Webinder und PHP GTK sind entweder veraltet, Windows-exklusiv oder beides, was sie für Multi-Plattform-Lösungen weniger lebensfähig macht.
  • Während der Entwicklung von PHP -Apps für den Desktop ist möglicherweise nicht immer gerechtfertigt, zu wissen, dass die Option vorhanden ist, kann für bestimmte Szenarien nützlich sein.

Warum?

3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP

Warum sollte jemand Cross -Plattform -PHP -Apps für den Desktop entwickeln? Warum sich nicht für etwas entscheiden, das tatsächlich in die niedrigen APIs des Betriebssystems einbinden kann, wie Adobe Air? Warum nicht mit etwas veraltet und aufgebläht, aber zuverlässig wie Java? Machen Sie es nicht zu einer Chrome -App und wenn Sie einen nativen Support benötigen, verwenden Sie den nativen Client? Hölle, wenn du eine Skriptsprache willst, warum nicht einfach mit Python gehen? Alles läuft, solange wir vermeiden, einen Server mit dem gesamten Shebang zu bündeln, oder?

Abgesehen von meinem Kopf kann ich mir mehrere weit hergestellte Szenarien vorstellen:

  1. Sie benötigen einen guten Mittelweg zwischen einfacher Syntax und guter Struktur, bei der es sich um PHP handelt, und Sie können sich nicht die Mühe machen, neue Sprachen wie ActionScript
  2. zu lernen
  3. Sie leiten es in einem Unternehmen mit hochberechtigten Analphabeten. Die einzige Möglichkeit, sie dazu zu zwingen, einen guten Browser für Ihre Unternehmens -App zu verwenden, besteht darin, sie in die von Ihnen lieferende App einzubetten. Es ist immer noch eine Web -App, öffnet sich aber in einem kopflosen Chrom!
  4. Sie möchten vermeiden, Hostingkosten für Ihre persönliche Bewerbung zu zahlen, und Sie möchten sie gerne auf einem USB -Stick mit sich tragen. Sie schließen es einfach an, führen es aus und Ihre App ist da - mit derselben SQLite -DB von zuvor. Wenn Sie online synchronisieren müssen, senden Sie den gesamten DB -Export an Dropbox oder einen solchen Service beim Klicken einer Schaltfläche und stellen Sie so sicher, dass Sie buchstäblich nur ohne Ihren Computer auf Ihre „Web -App“ zugreifen können. 🎜>
  5. Sie benötigen keinen AS -API -Zugriff auf niedriger Ebene - Sie möchten nur ein browserbasiertes Spiel oder eine Helfer -App oder etwas ähnlich Einfaches erstellen. PHP ist dafür vollkommen in Ordnung, und Sie kennen die Sprache bereits.
Diese Szenarien sehen vielleicht so aus, als würde ich Strohhalme greifen, und in der Tat kann ich mir wirklich keinen echten, praktischen Grund vorstellen, es zu tun, der keine praktikable Alternative hat. Trotzdem ist es schön zu wissen, dass es möglich ist. Mal sehen, wie.

1. Nightrain

nightrain ist ein vorverpackter Satz von PHP-Hosting-Voraussetzungen, die im Moment von PHP 5.5.x angetrieben werden. Es handelt sich um einen in Python geschriebenen Packager, der den internen Server von PHP verwendet, um Ihre App zu hosten, wodurch Apache und Nginx vermieden und die Konfigurationsshenanigans minimiert werden. Dies bedeutet jedoch auch, dass einige fortgeschrittenere Aspekte nicht verfügbar sind, und Sie können es nur für sehr rudimentäre Apps verwenden.

Ein weiterer Big Con ist, dass zuerst eine Eingabeaufforderung gestartet wird und dann die "App". Der Befehlsfenster muss offen bleiben, wenn Sie die App verwenden möchten, und dies ist möglicherweise mehr als ein wenig verwirrend für die technischen Analphabeten in Szenario 2) oben.

3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP Darüber hinaus können Sie standardmäßig nur eine Nightrain -App ausführen, da er tatsächlich einen Server auf Port 8000 auf den Markt bringt und dann den kopflosen Browser, der „heimlich“ öffnet, Localhost: 8000 besucht. Wenn Sie mehrere verschiedene Nightrain -Apps starten möchten, müssen Sie den Port in Einstellungen ändern. Dies bedeutet auch, dass einfach ein Besuch in Localhost: 8000 im Browser Ihres Host -Computers dieselbe App zeigt.

nightrain ist mit den meisten PHP -Apps/Frameworks kompatibel, solange Sie die Datenbank in SQLite ändern, was verwendet wird, und die gebündelte Php.ini für einige fehlende Erweiterungen optimieren. MySQL ist nicht gebündelt und es ist keine einfache Sache, es neben dem regulären Stapel zu installieren. Es ist sehr einfach, die App die SQLite -Daten stromaufwärts zu einem Server zu senden, den Sie für eine zentrale Datenbank verwenden.

Der bei weitem größte Nachteil der App ist, dass sie mit WX -Widgets den kopflosen Browser mit Strom versorgen, und unter Windows scheint dies auf IE7 zurückzuführen zu sein. Das Ändern scheint durch WXPython möglich, wie in dem oben verlinkten Thema erwähnt, wurde aber noch nicht versucht. Man kann nur hoffen, dass das Browser -Objekt bald auf etwas verwendbareres aktualisiert wird - bis dahin und bis alle anderen kritischen Nachteile repariert sind, kann ich mir nicht einmal eine Verwendung für Nightrain vorstellen.

2. WXPHP

WXPHP steht für „WXWIDGETS for PHP“ und ist eine PHP-Erweiterung, die die WXWIDGES-Bibliothek umhüllt, mit der Multi-Plattform-Desktop-Anwendungen schreiben können, mit denen die nativen grafischen Komponenten für die verschiedenen Plattformen verfügbar sind. -

wikipedia

Sie installieren WXPHP als separates Programm, mit dem Sie dann die Ausführung von .WXPHP -Dateien unterstützen können, indem Sie einfach verdoppelt.

3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP Dies bedeutet, dass Ihre Anwendungen nur Dateien sind, und Sie können sie mit Leichtigkeit überall verteilen. Sie können Ihren Code wie gewohnt in Dateien und Klassen organisieren und Ordner verteilen. Die Hauptdatei. WxPhp kann dann diese anderen Ressourcen enthalten.

Die Installation enthält mehrere Beispiele, darunter eine, die WebView initialisiert und die WXPHP -Website in einem WX -Frame lädt. Eine Sache zu beachten ist, dass Sie mit WXPHP keine Websites entwickeln, wie Sie es im Web tun würden. Mit anderen Worten, Sie entwickeln keine Offline -Websites, sondern streiten Sie verschiedene WX -Widgets zusammen. Daher hat die Bibliothek eine gewisse Lernkurve, und Ihnen fehlen die HTML5 -Funktionen, die Sie möglicherweise gewohnt sind, oder die Einfachheit der Webentwicklung. Es gibt einen Beweis für das Konzept des internen PHP -Servers, der Anforderungen ausführt und bedient

WXPHP verfügt außerdem über ein entzückendes Formular für das Formulargebäude, mit dem Sie den PHP -Code automatisch generieren können, den Sie für Ihre WXPHP -Apps benötigen, mittels eines WYSIWYG -Editors.

3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP Bevor Sie WX als trivial abtun, haben die Menschen mehr als grundlegende Apps entwickelt. Hier finden Sie beispielsweise ein PHP -Editor mit Remote -Debugging und einer Plugin -API. 3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP

Wenn Sie es mit der Entwicklung von PHP -Desktop ernst nehmen, ist WXPHP im Vergleich zu Nightrain bei weitem die bessere Option, obwohl Sie mit Nightrain gute alte HTML für GUI schreiben können.

Einer der größten Vorteile von WX hier ist die Tatsache, dass alle .WXPHP -Dateien nach dem Klicken der Maus ausgeführt werden können. Keine zusätzlichen Installationen, keine unangenehmen Konsolenfenster. Für technische Analphabeten ist das ein Glücksfall - Sie können die App in Ihrem Unternehmen problemlos über eine einfache E -Mail verteilen, und das Update -Verfahren ist so einfach wie eine Datei zu überschreiben.

3. Tidesdk

tidesdk hat einen etwas anderen Ansatz als die oben genannten zwei. Sie installieren ein SDK, um Anwendungen zu entwickeln, und jede Plattform hat bestimmte Voraussetzungen. TidesDK ist eigentlich das umbenannte Titanium -Desktop -Projekt. Titanium konzentrierte

Einmal installiert gemäß dem Anleitung für Erste Schritte und sobald wir die TidesDK -Entwickler -App haben (eine Helferanwendung, die uns bei der Bündelung unserer Anwendung in ein verteilbares Paket leitet) können wir uns mit der Entwicklung beginnen. Apps, die Sie mit Tide erstellen (über die Helfer -App oder über die Befehlszeile) sind sowohl als rein ausführbar als auch als installierbare Pakete verteilt, die die gesamte "App" -Behandlung erhalten, einschließlich eines eingebetteten Installationsverfahrens Über Hinzufügen/Entfernen von Programmen unter Windows oder Ihren Paketmanagern auf anderen Betriebssystemen.

Anwendungsressourcen werden in Verbindung mit einem Webkit -Client und einer vertrauten und umfangreichen API verwendet. Die API ist privilegiert und bietet Dateisystemzugriff, mit dem Sie Dateien lesen und verwalten können. APIs werden auch bereitgestellt, um eine lokale Datenbank zu erstellen und zu interagieren. Mit der Netzwerk -API können Clients und Server erstellt werden oder mit HTTP auf einer viel niedrigeren Ebene interpretiert werden. Es ist auch möglich, Socket -Verbindungen zu anderen Diensten zu öffnen.

Im Allgemeinen verwendet TidesDK HTML, CSS und JS, um Anwendungen zu rendern, aber es unterstützt auch Skriptsprachen wie Python, Ruby und PHP. Die Engine hinter dem Rendering ist Webkit, was bedeutet, dass sie etwas langsam startet, aber die neuesten Web -Technologien unterstützt.

Das Herz von TidesDK ist eine in der Webkit -Komponente zusammengestellte Objektbrücke. Mit der Brücke können andere Skriptsprachen - Python, PHP oder Ruby - auf der HTML -Seite mit Skript -Tags im DOM ausgeführt werden, genau wie JavaScript. Sie können auch direkt .py, .rb oder .php -Dateien in Ihrer Anwendung direkt aufrufen.

PHP wird aktiviert, indem der Manifestdatei wie folgt eine Modulanweisung hinzugefügt wird:

<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>
Nach dem Login kopieren
Beachten

Interessanterweise verfügt TidesDK über eine Objektbrücke, mit der Sie bei der Verwendung von PHP in Ihren Apps Daten nahtlos von JS in PHP und Rücken konvertieren können. Sie können hier mehr lesen, aber ein detailliertes TidesDK -Tutorial findet in Kürze statt.

Es gibt mehrere wichtige Nachteile bei der Verwendung von TidesDK für die Entwicklung von PHP -Desktop -Apps:

  1. Der PHP -Entwicklungs -Workflow ist stark unterdokumentiert und sehr anfällig für Fehler, aber fast unmöglich zu debuggen.
  2. Die gebündelte PHP -Version ist furchtbar veraltet - Version 5.3.x zum Zeitpunkt dieses Schreibens. Es ist zwar relativ einfach, es durch einen aktuellen Ordner /Modules im Installationsverzeichnis des SDK zu ersetzen, aber es ist ein zusätzliches Ärgernis und fehlt viele moderne PHP Integrierter Server, der hier auch einen esoterischen Anwendungsfall erhalten kann.
  3. Es gibt eine Lernkurve. Die DOM -API unterscheidet sich von dem, was Sie in der Webentwicklung gewohnt sind. Um etwas auf dem Bildschirm wiederzugeben, müssten Sie $ document-> write () anstelle von Echo aufrufen. Es ist ein geringfügiger Unterschied, aber es ist nicht gut dokumentiert und kann Sie aufsetzen.
  4. ist bei weitem der größte Nachteil die Zusammenstellung. Das Paket, das Sie beim Erstellen einer App erhalten, ist an die Plattform gebunden, auf der Sie sie erstellt haben. Um die App für mehrere Umgebungen zu erstellen, müssen Sie über diese Umgebungen verfügen. Die Windows/Linux -Ungleichheit ist leicht mit virtuellen Maschinen zu lösen (obwohl es einfacher zu lösen ist, wenn Ihr Host Windows ist und Sie Linux -VMs haben als umgekehrt), aber viel Glück für OS X -Kompilieren, es sei denn, Sie haben ein OS X -Gerät , auch.

tidesdk ist eine nette Option, aber alles andere als nutzbar. Es eignet sich hervorragend für die Lieferung von HTML/CSS/JS, aber wenn es um PHP geht, glaube ich, dass WXPHP immer noch die beste Wahl ist.

Andere Optionen

Es gibt auch andere Optionen, aber sie sind, gelinde gesagt, überwältigend.

  • phpDesktop ähnelt Nightrain, aber nur Windows. Andererseits wird es mit dem Mongoose -Server gebündelt und kann somit parallele Anfragen ausführen. Es läuft auch Chrome, was bedeutet, dass es langsam rendert/offen ist, unterstützt jedoch die neuesten Web -Technologien. Die Windows-Exclusivität disqualifiziert es jedoch aus dieser Liste von Multi-Plattform-Lösungen.

  • Webinder und PHP GTK sind beide stark veraltet und sollten wahrscheinlich nicht verwendet werden. Darüber hinaus ist Webinder nur Windows.

Schlussfolgerung

Während die Gründe für das Erstellen von PHP -Apps für den Desktop von Anwendungsfall zu Anwendungsfall variieren und oft nicht einfach zu rechtfertigen sind, glaube ich, dass es gut ist, zu wissen, dass die Option vorhanden ist, falls Sie es jemals brauchen.

Haben Sie Desktop -Apps in PHP entwickelt? Wenn ja, bitte lassen Sie mich bitte wissen, warum und welche Technologie Sie verwendet haben - ich würde es absolut gern, dass Sie über Ihre Erfahrungen schreiben. Andere Optionen kennen? Lass es mich in den Kommentaren wissen!

häufig gestellte Fragen (FAQs) zur Entwicklung von plattformübergreifenden Desktop-Apps mit PHP

Was sind die Vorteile der Verwendung von PHP für die Entwicklung von Desktop -Anwendungen? Aufgrund seiner zahlreichen Vorteile kann es jedoch auch für die Entwicklung von Desktop -Anwendungen verwendet werden. Erstens ist PHP plattformübergreifend, was bedeutet, dass es auf verschiedenen Betriebssystemen wie Windows, Linux und MacOS ausgeführt werden kann. Dies macht es ideal für die Entwicklung von Desktop -Anwendungen, die auf jeder Plattform ausgeführt werden können. Zweitens verfügt PHP über eine große Gemeinschaft von Entwicklern, was bedeutet, dass Sie leicht Ressourcen und Hilfe finden können, wenn Sie auf Probleme stoßen. Schließlich ist PHP einfach zu erlernen und zu verwenden und macht es zu einer guten Wahl für Anfänger in der Desktop -Anwendungsentwicklung.

Kann ich PHP für die Entwicklung komplexer Desktop -Anwendungen verwenden? Zur Entwicklung komplexer Desktop -Anwendungen. Während PHP traditionell für die Webentwicklung verwendet wird, hat es sich im Laufe der Jahre weiterentwickelt und enthält jetzt Funktionen, die die Entwicklung komplexer Desktop -Anwendungen ermöglichen. Dazu gehören objektorientierte Programmierung, Ausnahmebehandlung und Namespaces. Darüber hinaus gibt es mehrere PHP-Frameworks und Tools wie PHP-Desktop und PHP-GTK, die dazu beitragen können, komplexe Desktop-Anwendungen zu erstellen. Sie entwickeln plattformübergreifende Desktop-Anwendungen mithilfe von PHP. Es bettet einen Webserver, einen PHP -Interpreter, einen Browser und eine JavaScript -Engine in ein einzelnes Paket ein. Dies bedeutet, dass Sie Ihre Anwendung mit PHP schreiben können und sie als eigenständige Desktop -Anwendung ausgeführt wird. PHP-Desktop behandelt alle Backend-Prozesse, sodass Sie sich keine Sorgen machen müssen, einen Server einzurichten oder eine PHP-Umgebung zu konfigurieren. 🎜>

PHP-GTK ist eine Erweiterung für PHP, die einen Satz von PHP-Bindungen für das GTK-Toolkit liefert. GTK ist eine Bibliothek, die zum Erstellen grafischer Benutzeroberflächen verwendet wird. Mit PHP-GTK können Sie Desktop-Anwendungen mit einer grafischen Benutzeroberfläche erstellen, genau wie jede andere Desktop-Anwendung. PHP-GTK bietet eine Möglichkeit, solche Anwendungen mit PHP zu schreiben. Dies kann ein großer Vorteil sein, wenn Sie bereits mit PHP vertraut sind.

Wie kann ich meine PHP-Desktop-Anwendung verteilen? Sie haben Ihre PHP -Desktop -Anwendung entwickelt und können sie wie jede andere Desktop -Anwendung verteilen. Wenn Sie ein Tool wie PHP -Desktop verwenden, wird Ihre Anwendung in eine einzelne ausführbare Datei verpackt. Diese Datei kann verteilt und auf jedem Computer ausgeführt werden, ohne dass der Benutzer PHP installiert oder einen Webserver einrichten muss.

Kann ich mit PHP -Desktop -Anwendungen auf Systemressourcen zugreifen?

Ja, PHP -Desktop -Anwendungen können auf Systemressourcen zugreifen. PHP verfügt über mehrere integrierte Funktionen, mit denen Sie mit dem Dateisystem, dem Netzwerk und anderen Systemressourcen interagieren können. Beachten Sie jedoch, dass der Zugriff auf Systemressourcen Sicherheitsrisiken darstellen kann. Daher ist es wichtig, Best Practices für Sicherheit bei der Entwicklung Ihrer Anwendung zu befolgen. 🎜> Während PHP für die Entwicklung von Desktop -Anwendungen verwendet werden kann, hat es einige Einschränkungen. PHP ist nicht so schnell wie kompilierte Sprachen wie C oder Java, daher ist es möglicherweise nicht für Anwendungen geeignet, die eine hohe Leistung erfordern. Darüber hinaus ist PHP nicht für die Entwicklung von Desktop -Anwendungen ausgelegt. Daher fehlen einige Funktionen, die in anderen Sprachen der Desktop -Anwendungsentwicklung häufig vorkommen. Tools wie PHP-Desktop und PHP-GTK können jedoch dazu beitragen, einige dieser Einschränkungen zu überwinden. Desktop -Anwendungsentwicklung. Wenn Sie eine PHP -Webanwendung haben, können Sie sie mit einem Tool wie PHP -Desktop in eine Desktop -Anwendung umwandeln. Dies kann Ihnen viel Zeit und Mühe sparen, da Sie Ihre Anwendung nicht von Grund auf neu schreiben müssen.

Wie kann ich meine PHP -Desktop -Anwendung debuggen? ähnelt dem Debuggen einer PHP -Webanwendung. Sie können die integrierten Fehlerberichterstattungsfunktionen von PHP verwenden, um Fehler anzuzeigen. Darüber hinaus können Sie einen PHP -Debugger wie XDEBUG verwenden, um Ihren Code durchzusetzen und Fehler zu finden. Einige PHP -Desktop -Entwicklungstools bieten auch Debugging -Funktionen.

Kann ich Datenbanken mit PHP -Desktop -Anwendungen verwenden? PHP unterstützt eine Vielzahl von Datenbanken, einschließlich MySQL, PostgreSQL und SQLite. Sie können die integrierten Datenbankfunktionen von PHP oder eine Datenbankabstraktionsschicht wie PDO verwenden, um mit Ihrer Datenbank zu interagieren. Auf diese Weise können Sie Daten speichern und abrufen, genau wie in einer PHP -Webanwendung.

Das obige ist der detaillierte Inhalt von3 Möglichkeiten zur Entwicklung von Cross -Plattform -Desktop -Apps mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage