ホームページ > バックエンド開発 > PHPチュートリアル > PHPでクロスプラットフォームデスクトップアプリを開発する3つの方法

PHPでクロスプラットフォームデスクトップアプリを開発する3つの方法

Christopher Nolan
リリース: 2025-02-19 09:26:10
オリジナル
637 人が閲覧しました

PHPでクロスプラットフォームデスクトップアプリを開発する3つの方法

クロスプラットフォームデスクトップアプリ開発言語としての

php?冒涜!それにもかかわらず、それは可能です。

数年前、PHPをデスクトップに持っていたPHPを持っていたものはすべて、長い間放棄されているGTK PHPでした。それ以来、新しいプレイヤーが登場しましたが、まず「なぜ」に答えましょう。

キーテイクアウト

  • PHPは、Web開発での主要な使用にもかかわらず、クロスプラットフォームのデスクトップアプリケーションを開発するために使用できます。この記事では、これのための3つの主要なツールについて説明します:Nightrain、WXPHP、およびTidesDk。
  • Nightrainは、初歩的なアプリに最適なPHPホスティング前提条件の事前にパッケージ化されたセットです。ただし、Windowsでコマンドプロンプトを起動するなど、制限があります。これは、非技術的なユーザーを混乱させる可能性があり、設定を変更せずに複数のアプリを同時に実行できないことができます。
  • WXPHPは、WXWidgetsライブラリをラップするPHP拡張機能であり、マルチプラットフォームデスクトップアプリケーションを作成できます。よりシンプルなユーザーエクスペリエンスを提供します。アプリケーションは、ダブルクリックで実行できるが、HTML5機能がなく、学習曲線を持っている単なるファイルです。
  • TidesDkは、HTML、CSS、JS、およびPHPなどのその他のスクリプト言語を使用してアプリケーションをレンダリングするオープンソースプロジェクトです。ただし、時代遅れのPHPバージョン、異なるDOM API、さまざまなプラットフォーム用のアプリを構築するための複数の環境が必要ないくつかの欠点があります。
  • phpdesktop、webinder、php gtkなどのその他のオプションは、時代遅れ、Windows独占的、またはその両方であるため、マルチプラットフォームソリューションでは実行可能ではありません。
  • デスクトップ用のPHPアプリの開発が常に正当化されるとは限らない場合があります。オプションが存在することを知っていることは、特定のシナリオに役立つ可能性があります。
  • なぜ?
  • なぜ誰もがデスクトップ用のクロスプラットフォームPHPアプリを開発するのですか? Adobe Airのようなオペレーティングシステムの低レベルのAPIに実際に結びつけることができるものを選んでみませんか? Javaのように、時代遅れで肥大化したが信頼できるものを持って行ってみませんか? Chromeアプリにしてみませんか?ネイティブサポートが必要な場合は、ネイティブクライアントを使用してください。地獄、あなたがスクリプト言語が欲しいなら、なぜPythonと一緒に行くのですか?シバン全体でサーバーをバンドルする必要がない限り、すべてが行きますよね?
頭の上から、いくつかの遠くのフェッチされたシナリオを考えることができます:

  1. 簡単な構文とPHPである優れた構造の間に良い中間点が必要であり、ActionScriptのような新しい言語を学習することは悩まされません
  2. あなたはそれを非常にコンピューターの文盲の人々を抱えている会社でそれを実行しています、そして、あなたの会社アプリに優れたブラウザを使用するように強制する唯一の方法は、それを提供するアプリに埋め込むことです。まだWebアプリですが、ヘッドレスクロムで開きます!あなたはあなた自身の個人的なアプリケーションのホスティングコストを支払うことを避けたいと思っています、そして、あなたはそれをUSBスティックであなたと一緒に運びたいです。プラグを接続して実行するだけで、アプリがあります。以前から同じSQLite DBを使用してください。オンラインで同期する必要がある場合は、ボタンをクリックするだけでDBエクスポート全体をDropboxまたはそのようなサービスに送信します。したがって、コンピューターがなくても「Webアプリ」にアクセスできるのは文字通り唯一の人であることを確認してください。 🎜>
  3. 低レベルのOS APIアクセスは必要ありません。ブラウザベースのゲーム、ヘルパーアプリ、または同様にシンプルなものを作成するだけです。 PHPはそのために完全に問題あり、あなたはすでに言語を知っています。
  4. これらのシナリオはストローを把握するように見えるかもしれません。実際、実行可能な代替手段を持たない実際の実用的な理由は本当に考えられません。それでも、それが可能であることを知ってうれしいです。方法を見てみましょう。
1。 nightrain

Nightrainは、現時点でPHP 5.5.xを搭載したPHPホストの前提条件の事前にパッケージ化されたセットです。 Pythonで書かれたパッケーガーで、PHPの内部サーバーを使用してアプリをホストするため、ApacheとNginxを回避し、構成シェナニガンを最小限に抑えます。ただし、これは、いくつかのより高度な側面が利用できないことを意味し、非常に初歩的なアプリにのみ使用することができます。

もう1つの大きな詐欺は、Windowsで最初にコマンドプロンプトが起動し、次に「APP」が起動されることです。アプリを使用する場合は、コマンドウィンドウを開いたままにしておく必要があります。これは、技術的に文盲のシナリオ2)上記の人々と少し混乱する可能性があります。

さらに、デフォルトでは1つのNightrainアプリのみを実行できます。実際にポート8000​​でサーバーを起動し、「密かに」LocalHost:8000を開くヘッドレスブラウザを作成するためです。いくつかの異なるNightrainアプリを起動する場合は、settings.iniのポートを変更する必要があります。これはまた、単にLocalHostにアクセスするだけで、ホストマシンのブラウザに8000が同じアプリを表示することを意味します。Nightrainは、データベースをSQLiteに変更している限り、ほとんどのPHPアプリ/フレームワークと互換性があります。 MySQLはバンドルされておらず、通常のスタックと一緒にそれを取り付けることは簡単なことではありません。とにかく集中データベースに使用するサーバーにアプリを上流にアプリに送信するのは非常に簡単です。したがって、アプリが実行されているシステムでSQLiteのみを使用して、

>

アプリの最大の欠点は、WXウィジェットを使用してヘッドレスブラウザに電力を供給していることです。Windowsでは、IE7に依存しているようです。上記の問題で述べたように、wxpythonを使用して、変更されていないが、まだ試みられていないように変更されているようです。ブラウザオブジェクトがすぐにより使いやすいものに更新されることを願っています - それまで、そして他のすべての重要な欠点が修正されるまで、私はナイトレインの使用を想像することさえできません。

2。 wxphp

WXPHPは「PHPのwxwidgets」の略で、WXWidgetsライブラリをラップするPHP拡張機能です。 -
wikipedia

WXPHPを個別のプログラムとしてインストールすると、.wxphpファイルの実行をサポートするだけで、それらを2倍にすることでサポートできます。

これは、アプリケーションが単なるファイルであり、どこにでも簡単に配布できることを意味します。通常どおりファイルやクラスにコードを整理し、フォルダーを配布できます。メイン.WXPHPファイルには、これらの他のリソースを含めることができます。 PHPでクロスプラットフォームデスクトップアプリを開発する3つの方法インストールには、WebViewを初期化し、WXPHP WebサイトをWXフレームにロードする例を含むいくつかの例があります。注意すべきことの1つは、WXPHPを使用すると、ウェブ上のようにWebサイトを開発していないことです。言い換えれば、オフラインのWebサイトを開発するのではなく、さまざまなWXウィジェットをつなぎ合わせます。そのため、ライブラリには少し学習曲線があり、慣れているHTML5機能やWeb開発のシンプルさが不足しています。内部PHPサーバーの実行とサービングリクエストの概念の証明がありますが、それは実験的で複雑であり、再びNightrainのようにローカルホストを公開します。

WXPHPには、WYSIWYGエディターを使用してWXPHPアプリに必要なPHPコードを自動的に生成するのに役立つ愛らしいフォームビルディングツールも付属しています。

WXを些細なものとして却下する前に、人々はその中で基本的なアプリ以上のものを開発しました。たとえば、リモートデバッグとプラグインAPIを備えたPHPエディターは次のとおりです。

PHPデスクトップ開発に真剣に取り組んでいる場合、Nightrainを使用すると、Nightrainと比較するとWXPHPははるかに優れた選択肢です。

ここでのWXの最大の利点の1つは、マウスをクリックするだけですべての.WXPHPファイルを実行できるという事実です。追加のインストール、厄介なコンソールウィンドウはありません。技術的に文盲の人々にとって、それは天の恵みです。簡単なメールでアプリを簡単に配布できます。更新手順はファイルを上書きするのと同じくらい簡単です。

3。 tidesdk

TidesDkには、上記の2つとは多少異なるアプローチがあります。 アプリケーションを開発できるようにSDKをインストールし、各プラットフォームには特定の前提条件があります。 TidesDkは、実際にはチタンデスクトッププロジェクトと改名されています。チタンはモバイルに焦点を合わせたままであり、デスクトップバージョンを放棄しました。これは、開いた人がそれを調達し、それをティデスドと呼んだ人に引き継がれました。

Get Start Guideに従ってインストールしたら、TidesDk開発者アプリ(アプリケーションを分散パッケージにバンドルする際にガイドするヘルパーアプリケーション)を手に入れると、開発を開始できます。 Tideで構築するアプリ(ヘルパーアプリを介して、またはコマンドラインを介して)は、純粋に実行可能なものとして配布可能であるか、インストール手順を含む「アプリ」トリートメント全体を取得するインストール可能なパッケージとして配布できます。 Windowsまたは他のオペレーティングシステムのパッケージマネージャーにプログラムを追加/削除します。

アプリケーションリソースは、WebKitクライアントと馴染みのある広範なAPIと組み合わせて使用​​されます。 APIは特権であり、ファイルを読み取り、管理できるファイルシステムアクセスを提供します。 APIは、ローカルデータベースを作成および対話するためにも提供されています。ネットワークAPIでは、クライアントとサーバーを作成したり、はるかに低いレベルでHTTPとインターフェイスしたりできます。他のサービスへのソケット接続を開くことも可能です。

一般に、TidesDkはHTML、CSS、JSを使用してアプリケーションをレンダリングしますが、Python、Ruby、PHPなどのスクリプト言語もサポートしています。レンダリングの背後にあるエンジンはWebKitです。つまり、開始がやや遅くなりますが、最新のWebテクノロジーをサポートします。

TidesDkの心臓は、WebKitコンポーネントにコンパイルされたオブジェクトブリッジです。ブリッジにより、Python、PHP、またはRubyの他のスクリプト言語が、JavaScriptのようにDOMのスクリプトタグを使用してHTMLページで実行できます。アプリケーション内から.py、.rb、または.phpファイルを直接呼び出すこともできます。

PHPは、次のようなマニフェストファイルにモジュールステートメントを追加することによりアクティブになります。

スクリプト言語にスクリプトモジュールを使用すると、アプリのインストールとランタイムに大きなパフォーマンスペナルティが発生することに注意してください。興味深いことに、TidesDkには、アプリでPHPを使用すると、データをJSからPHPおよびバックにシームレスに変換できるオブジェクトブリッジがあります。詳細はこちらをご覧くださいが、詳細なTidesDkチュートリアルが近日公開されます。

PHPデスクトップアプリ開発にTidesDkを使用することには、いくつかの主要な欠点があります。

PHP開発ワークフローは重度の未文書であり、バグの影響を非常に受けやすいですが、デバッグすることはほとんど不可能です。
    バンドルされたPHPバージョンは、この執筆時点では非常に時代遅れです。バージョン5.3.xです。 SDKのインストールディレクトリの /modulesフォルダーを介して最新のものに置き換えることは比較的簡単ですが、それは追加の迷惑であり、デスクトップアプリ開発で役立つ可能性のある多くの最新のPHP機能を欠いています。ここで難解なユースケースを取得する可能性のある組み込みサーバー。
  1. 学習曲線があります。 Dom APIは、Web開発で慣れている可能性のあるものとは異なります。画面に何かをエコーするには、エコーではなく$ document-> write()を呼び出す必要があります。それはわずかな違いですが、それは十分に文書化されておらず、あなたをつまずくことができます。
  2. 最大の欠点は編集です。アプリを構築することで得られるパッケージは、構築したプラットフォームにバインドされています。複数の環境のアプリを構築するには、それらの複数の環境が必要です。 Windows/Linuxの格差は仮想マシンで簡単に解決できます(ホストがWindowsであり、Linux VMが他の方法よりもLinux VMSを持っている場合は解決しやすいです)が、OS Xデバイスを持っていない限り、OS X用にコンパイルしてください。 、
  3. TidesDkはきちんとしたオプションですが、使用可能ではありません。 HTML/CSS/JS配信には最適ですが、PHPに関しては、WXPHPがまだ最善の策だと思います。
  4. その他のオプション
  5. 他のオプションもありますが、控えめに言っても圧倒的です。

phpdesktopはnightrainに似ていますが、Windowsのみです。一方、Mongooseサーバーにバンドルされているため、並列リクエストを実行できます。また、Chromeを実行します。つまり、レンダリング/オープンが遅いことを意味しますが、最新のWebテクノロジーをサポートしています。そのWindows-Expusivityは、このマルチプラットフォームソリューションのこのリストからそれを失格させます。

WebinderとPHP GTKはどちらも非常に時代遅れであり、おそらく使用すべきではありません。それに加えて、WebinderはWindowsのみです

    結論
  • デスクトップ用のPHPアプリを構築する理由はユースケースごとに異なり、多くの場合正当化するのが簡単ではありませんが、必要な場合はオプションがあることを知っておくといいと思います。

    PHPでデスクトップアプリを開発しましたか?もしそうなら、あなたが使用した理由とどのテクノロジーを教えてください。私はあなたにあなたの経験について書いてもらいたいです。他のオプションを知っていますか?コメントでお知らせください!
  • PHPを使用したクロスプラットフォームのデスクトップアプリの開発に関するよくある質問(FAQ)

    デスクトップアプリケーション開発にPHPを使用することの利点は何ですか?

    PHPは、主にWeb開発に使用される多用途のスクリプト言語です。ただし、多くの利点があるため、デスクトップアプリケーション開発にも使用できます。第一に、PHPはクロスプラットフォームです。つまり、Windows、Linux、MacOSなどのさまざまなオペレーティングシステムで実行できます。これにより、あらゆるプラットフォームで実行できるデスクトップアプリケーションの開発に最適です。第二に、PHPには開発者の大規模なコミュニティがあります。つまり、問題に遭遇したときにリソースを簡単に見つけて支援することができます。最後に、PHPは学習と使用が簡単であるため、デスクトップアプリケーション開発の初心者には最適です。

    複雑なデスクトップアプリケーションの開発にPHPを使用できますか?複雑なデスクトップアプリケーションを開発するため。 PHPは伝統的にWeb開発に使用されていますが、長年にわたって進化しており、現在では複雑なデスクトップアプリケーションの開発を可能にする機能が含まれています。これらには、オブジェクト指向のプログラミング、例外処理、および名前空間が含まれます。さらに、複雑なデスクトップアプリケーションの構築に役立つPHPデスクトップやPHP-GTKなどのいくつかのPHPフレームワークとツールがあります。

    PHPデスクトップはどのように機能しますか? PHPを使用してクロスプラットフォームデスクトップアプリケーションを開発します。 Webサーバー、PHPインタープリター、ブラウザ、JavaScriptエンジンを単一のパッケージに埋め込みます。これは、PHPを使用してアプリケーションを書き込むことができ、スタンドアロンのデスクトップアプリケーションとして実行されることを意味します。 PHPデスクトップはすべてのバックエンドプロセスを処理するため、サーバーのセットアップやPHP環境の構成について心配する必要はありません。 php-gtkは、GTKツールキットに一連のPHPバインディングを提供するPHPの拡張機能です。 GTKは、グラフィカルユーザーインターフェイスの作成に使用されるライブラリです。 PHP-GTKを使用すると、他のデスクトップアプリケーションと同様に、グラフィカルユーザーインターフェイスを持つデスクトップアプリケーションを作成できます。 PHP-GTKは、PHPを使用してそのようなアプリケーションを書き込む方法を提供します。これは、PHPにすでに精通している場合に大きな利点になります。 PHPデスクトップアプリケーションを開発しました。他のデスクトップアプリケーションと同じように配布できます。 PHPデスクトップなどのツールを使用している場合、アプリケーションは単一の実行可能ファイルにパッケージ化されます。このファイルは、ユーザーがPHPをインストールしたり、Webサーバーをセットアップする必要なく、任意のコンピューターで配布して実行できます。 PHPデスクトップアプリケーションを使用してシステムリソースにアクセスできますか?

    はい、PHPデスクトップアプリケーションはシステムリソースにアクセスできます。 PHPには、ファイルシステム、ネットワーク、およびその他のシステムリソースと対話できるいくつかの組み込み関数があります。ただし、システムリソースへのアクセスはセキュリティリスクをもたらす可能性があるため、アプリケーションを開発する際にセキュリティのベストプラクティスに従うことが重要です。 phpはデスクトップアプリケーション開発に使用できますが、いくつかの制限があります。 PHPは、CやJavaなどのコンパイルされた言語ほど速くないため、高性能を必要とするアプリケーションには適していない場合があります。さらに、PHPはデスクトップアプリケーション開発用に設計されていないため、他のデスクトップアプリケーション開発言語で一般的ないくつかの機能がありません。ただし、PHPデスクトップやPHP-GTKなどのツールは、これらの制限のいくつかを克服するのに役立ちます。

    デスクトップアプリケーション開発に既存のPHPコードを使用できますか?デスクトップアプリケーション開発。 PHP Webアプリケーションがある場合は、PHPデスクトップなどのツールを使用してデスクトップアプリケーションに変換できます。これにより、アプリケーションをゼロから書き換える必要がないため、多くの時間と労力を節約できます。 PHP Webアプリケーションのデバッグに似ています。 PHPの組み込みエラーレポート関数を使用して、エラーを表示できます。さらに、XdebugのようなPHPデバッガーを使用して、コードを介してバグを見つけることができます。一部のPHPデスクトップ開発ツールは、デバッグ機能も提供しています。

    PHPデスクトップアプリケーションでデータベースを使用できますか? PHPは、MySQL、PostgreSQL、SQLiteなどの幅広いデータベースをサポートしています。 PHPの内蔵データベース関数またはPDOのようなデータベース抽象化レイヤーを使用して、データベースと対話できます。これにより、PHP Webアプリケーションのようにデータを保存および取得できます。

以上がPHPでクロスプラットフォームデスクトップアプリを開発する3つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート