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拡張機能です。 -
wikipediaWXPHPを個別のプログラムとしてインストールすると、.wxphpファイルの実行をサポートするだけで、それらを2倍にすることでサポートできます。
これは、アプリケーションが単なるファイルであり、どこにでも簡単に配布できることを意味します。通常どおりファイルやクラスにコードを整理し、フォルダーを配布できます。メイン.WXPHPファイルには、これらの他のリソースを含めることができます。

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テクノロジーをサポートします。
PHPは、次のようなマニフェストファイルにモジュールステートメントを追加することによりアクティブになります。TidesDkの心臓は、WebKitコンポーネントにコンパイルされたオブジェクトブリッジです。ブリッジにより、Python、PHP、またはRubyの他のスクリプト言語が、JavaScriptのようにDOMのスクリプトタグを使用してHTMLページで実行できます。アプリケーション内から.py、.rb、または.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アプリを構築する理由はユースケースごとに異なり、多くの場合正当化するのが簡単ではありませんが、必要な場合はオプションがあることを知っておくといいと思います。
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でクロスプラットフォームデスクトップアプリを開発する3つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPでは、session_status()またはsession_id()を使用して、セッションが開始されたかどうかを確認できます。 1)session_status()関数を使用します。 php_session_activeが返された場合、セッションが開始されました。 2)SESSION_ID()関数を使用します。空の文字列が返された場合、セッションが開始されます。どちらの方法でもセッション状態を効果的に確認でき、使用する方法を選択することは、PHPバージョンと個人的な好みに依存します。

Sessionsionsionsarevitalinwebapplications、特にコマースプラットフォームの前。

PHPでの同時セッションアクセスの管理は、次の方法で実行できます。1。データベースを使用してセッションデータを保存します。これらの方法は、データの一貫性を確保し、並行性のパフォーマンスを向上させるのに役立ちます。

phpsessionshaveverallimitations:1)storagecconstraintscanleadtoperformanceissues; 2)securityvulnerablesliasitylikessessionfixationAttacksicexist;

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1
使いやすく無料のコードエディター

ホットトピック









