1

編集:PHPおよびDartスクリプトはクライアント側で実行されます。

ページの読み込み時にphpスクリプトを実行します。次に、dartスコープ内のphp関数にアクセスしたいと思います。すべてをダーツに移行することは可能ですか、それとも移行する必要がありますか?

具体的には;

  • 私はFacebookアプリケーション(facebook php sdkを使用)を開発しようとしています。
  • 「Hello、World!」をいくつか書いています。Webアプリケーション、
  • それが今のところ私が得たすべての経験です。

前もって感謝します。

4

1 に答える 1

1

いいえ。DartとPHPの間で通信するためのクリーンな方法はありません。クライアント側のDartを使用すると、クライアント側とサーバー側のスクリプトの通常の問題が発生します。サーバーサイドのDartでは、私が知る限り(googleで調査)、2つの間に相互運用性はありません。

クライアント側とサーバー側のスクリプト

Web開発では、プログラミング言語にはサーバー側とクライアント側の2つの主要なクラスがあります。サーバー側の言語はWebサーバー上で実行され、HTTP要求に応答するためにWebサーバーが送信する応答を決定します。クライアント側の言語はクライアント(読み取り、ブラウザー)で実行され、ブラウザーでDOMなどを操作します。

クライアント側のコードからサーバー側のコードを呼び出すことは、sshを使用せずにコンピューターから友人のコンピューターでコマンドを実行するようなものです。クライアント側の言語()からサーバー側の関数を直接呼び出すことfunction my_client_func() { my_server_func(); }はできません。

回避策

この機能を実現するには、いくつかの方法があります。2つはAJAXとWebSocketです。

AJAXを使用すると、HTTPリクエストを非同期で作成し、データが到着したときにデータを処理できます。特別なWebページなどを介してサーバーからデータを取得するメカニズムを作成できます。と呼ばれるページを作成し、などfacebook.com/apps/yourapp/function.phpのパラメータを使用して呼び出すことができますname=myFuncitonName&var1=something&var2=elsefunction.php?name=myFunction...)。

WebSocketを使用すると、全二重TCP風のTCPを作成できます。受信したWebSocketメッセージに基づいて関数を呼び出すPHPWebSocketサーバーを作成できますが、これによりセキュリティホールが作成される可能性があります。

サーバー側の言語相互運用性

一部のサーバー側言語は、他のそのような言語と相互運用するためのメカニズムを提供します。Dartは、PHPコードを呼び出すメカニズムを提供していないようです。

回避策

Dartは、Processクラスの形式でプロセスを実行するメカニズムを提供します。Processクラスを使用してPHPインタープリターを呼び出すことができます。

DartはCとの相互運用性を提供します。ネイティブ拡張機能を使用すると、DartコードはC関数を呼び出すことができます。この質問に基づいて、CコードはPHP関数を呼び出すことができます。

于 2012-11-19T09:07:04.623 に答える