ホームページ  >  記事  >  バックエンド開発  >  エンジンとスクリプトのアーキテクチャを使用して設計しますか? デスクトップ プログラムを開発するのに php と js を使用しますか?

エンジンとスクリプトのアーキテクチャを使用して設計しますか? デスクトップ プログラムを開発するのに php と js を使用しますか?

WBOY
WBOYオリジナル
2016-06-23 13:27:56962ブラウズ

Atitit: エンジンとスクリプト アーキテクチャを使用してデスクトップ プログラムを開発します。 。

1. エンジンとスクリプトのアーキテクチャ クロスプラットフォーム、デスクトップ、Web の利点 1

2. アーキテクチャ デスクトップ エンジン (Java、C#) 2

3. PHP デスクトップ エンジンのキー ポイント 2

3.1. : cs デスクトップと Web メソッド 2

3.2 の両方をサポートします。インターフェースは 2

3.3 を実装するために html5+css+js を使用します。Cli インターフェースは Web インターフェース 2

3.4 と相互運用します。 - プロセス 2

3.4.1. HTML5 インターフェイスはバックグラウンド エンジンがあるかどうかを判断します $parser=php c# java js2

3.4.2. デスクトップ エンジン dispatch3

3.4.3. php3 に転送するために cli エンジンを使用します

3.4 .4 . phprun.bat4

3.4.5. Php は、Web とデスクトップの両方のパラメータ転送をサポートします 4

3.4.6. デスクトップ プログラム $_GET パラメータ解析、$callback5 によるコールバック js

4. よくある質問と最近の実践 5

4.1. cmd.exe または直接の Bat を使用します。 。 5

5. その他の PHP デスクトップ プログラム ソリューション 6

6. 参考資料 6

1. エンジンとスクリプトのアーキテクチャ クロスプラットフォーム、デスクトップ、Web の利点

Java はクロスプラットフォームに非常に優れています。ただし、Java をコンパイルする必要があります。 。柔軟に変更する必要があり、スクリプト化できるデスクトップ プログラムが必要な場合は、エンジンとスクリプトのアーキテクチャを検討できます。 。 。デスクトップのバックエンドとして php または js を使用します。 。 。

著者:: Laowa's Claw Attilax Ailong、EMAIL:1466519819@qq.com

2. アーキテクチャ デスクトップ エンジン (Java、C#)

3. PHP デスクトップ エンジンの重要なポイント

3.1. 実行環境:同時に cs デスクトップと Web メソッドをサポートします

3.2. インターフェイスは html5+css+js を使用して実装されます

3.3. Cli インターフェイスは Web インターフェイスと相互運用します

3.4.

3.4.1. Html5 インターフェイスはバックグラウンド エンジンがあるかどうかを決定します $parser=php c# java js

dwr エンジンを使用して http param に変換します..

どのエンジンを使用するかについての一般的な設定を行うのが最善ですまたは、エンジンごとに異なるページを構成することもできます。 。

3.4.2. デスクトップ エンジンのディスパッチ

Proj.amazon splider

//JS 呼び出しの場合

public void sendNSCommand(Object message, Object message2, Object message3, Object message4, Object message5, Object message6, Object message7 )

String meth =(String) メッセージ;

=((文字列)メッセージ2);

= new ParamX().urlParams2Map((文字列)メッセージ2);

webBrowser1 . オブジェクト[0] = r;

with with 1. InvokeScript(callback, object);

Console.WriteLine("==exe js rzt:" + o);

return;

}

3.4.3 。  cli引擎转出版にphp

class ParesrX

{

private string meth;

public ParesrX(string meth)

{

// TODO: メンバーの初期化を完了します

this.meth = meth;

}

internal String exec()

{

Map m =new Params2Map (this.meth);

if (((String)m.get("$parser") ).Equals("php"))

{

String urlparams = m.serialize();

String cmd = "@qut" + pathx.Startupパス() + "/phprun.bat@qut @qut" + pathx.StartupPath() + "/com.attilax/api.php@qut @qut" + urlparams + "@qut";

cmd=cmd.Replace("@qut",""");

コンソール。 WriteLine(cmd);

String r= new Cmd().RunCmd(cmd);

return r;

}

return "";

3.4.4. phprun.bat

@ d:

@"%~dp0php5.3.10php.exe" -c "%~dp0php5.3.10php.ini" -f %1 %2 %3

3.4.5。  Php同時サポートweb与桌面のパラメータ传递

/com.attilax/api.php@qut @qut" + urlparams + "@qut";

Web方式 api.php?urlparams....

3.4 .6. 桌面程序$_GETパラメータの解析、自定要引擎

if(count($_GET)==0) //cli mode

{

$param=$argv[1];

$GLOBALS["varx"]["argv"]=$argv ;

$_GET=urlParams2Map($param);

$GLOBALS["varx"]["get"]=$_GET ;

}

function urlParams2Map( $params) {

$o=array();

$a=explode('&',$params);

$GLOBALS["ヴァークス"]["a"]=$a ;

$GLOBALS["varx"]["params"]=$params;

foreach( $a as $k2=>$v2 )

{

$a2=explode("=",$v2);

$k=$a2[0];

$v=$a2[1];

$o[$k]=$v;

}

$GLOBALS["varx"]["o"]=$o ;

return $o;

}

3.4.7. 回调js 通过$callback

文字列 コールバック = (文字列)m.get("$callback");

String js2 = callback + "('" + r + "');";

object[0] d.exe またはダイレクト Bat。 。

batメソッドの使用をお勧めします。 。それ以外の場合は、cmd.exe

String cmd = "@qut" + pathx.StartupPath() + "/phprun.bat@qut @qut" + pathx.StartupPath() + "/com.attilax/api.php@qut @qut" + urlparams + "@qut";

cmd=cmd.Replace("@qut",""");

正しい方法は、/C の後にすべての文字と二重引用符を追加することです:

2 つのコマンドを比較すると、多くの人はすぐにその理由を理解できるでしょう

ここには 2 つのコマンドがあり、それらはネストされているためです:

cmd.exe /C "command"

コマンドは cmd.exe です。 、2 つのパラメーターは /C と "command" です。ここでのコマンドは

5. その他の php デスクトップ プログラム ソリューション

php gtk

WinBinder

6. 参考情報

PHP を使用してデスクトップ アプリケーションを開発する.html

CMD 実行時の引用符の追加に関する FAQ - Demi-Moshi のブログ - ブログ チャンネル - CSDN.NET.html

C# で DOS コマンド (CMD コマンド) を実行 - Yang Youshan - ブログ チャンネル - CSDN.NET

paip.asp vbs CLI コマンドラインを介して PHP コードを呼び出します - attilax のコラム - ブログ チャンネル - CSDN.NET

paip シェル cmd コマンドを実行します uapi java php Python の概要 - attilax のコラム - ブログ チャンネル - CSDN NET
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。