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

インストールには、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機能を欠いています。ここで難解なユースケースを取得する可能性のある組み込みサーバー。
- 学習曲線があります。 Dom APIは、Web開発で慣れている可能性のあるものとは異なります。画面に何かをエコーするには、エコーではなく$ document-> write()を呼び出す必要があります。それはわずかな違いですが、それは十分に文書化されておらず、あなたをつまずくことができます。
最大の欠点は編集です。アプリを構築することで得られるパッケージは、構築したプラットフォームにバインドされています。複数の環境のアプリを構築するには、それらの複数の環境が必要です。 Windows/Linuxの格差は仮想マシンで簡単に解決できます(ホストがWindowsであり、Linux VMが他の方法よりもLinux VMSを持っている場合は解決しやすいです)が、OS Xデバイスを持っていない限り、OS X用にコンパイルしてください。 、-
- TidesDkはきちんとしたオプションですが、使用可能ではありません。 HTML/CSS/JS配信には最適ですが、PHPに関しては、WXPHPがまだ最善の策だと思います。
その他のオプション-
他のオプションもありますが、控えめに言っても圧倒的です。
phpdesktopはnightrainに似ていますが、Windowsのみです。一方、Mongooseサーバーにバンドルされているため、並列リクエストを実行できます。また、Chromeを実行します。つまり、レンダリング/オープンが遅いことを意味しますが、最新のWebテクノロジーをサポートしています。そのWindows-Expusivityは、このマルチプラットフォームソリューションのこのリストからそれを失格させます。
WebinderとPHP GTKはどちらも非常に時代遅れであり、おそらく使用すべきではありません。それに加えて、WebinderはWindowsのみです
以上がPHPでクロスプラットフォームデスクトップアプリを開発する3つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。