C#アプリケーション/ライブラリからPHPメソッドを呼び出す素朴な例には、クラスWebRequest
とWebResponse
クラスの使用が含まれます。
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create("http://server/script.php?method=my_method");
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Stream stream = response.GetResponseStream();
次に、ストリームを使用して、応答を解析または逆シリアル化できます(たとえば、JSON文字列の場合)。
script.php
この実装は、パラメーターを使用し、method
そのメソッドへの呼び出しを委任することに依存しています。必要に応じて、疑似ルーティング。より多くの引数をクエリ文字列を介して渡すことができ、呼び出されたメソッドで使用できます。
これの別の些細な例:
$r = new Repository();
$d = $r->{$_GET['method']}();
echo json_encode($d);
ただし、これの多くは既存のテクノロジーを使用して実装できます。PHPメソッドをAPIとして公開することは、死ぬまで行われてきたことであり、そのようなアプリケーションの開発を促進するために、RESTfulAPIフレームワークが多数存在します。クライアント実装で何かを使用する場合、APIを使用するC#アプリケーション/ライブラリについても同じことが言えます。
あなたの質問への答え、「それは可能ですか...」; 確かにそうですが、これはかなり高レベルの要件であり、実装は問題のドメインに完全に依存します。
詳細として(コメントするには長すぎたかもしれません)、私は現在、大規模なオーバーホールプロジェクトに取り組んでいます。以前の開発者は、自分のすべてをロールバックすることにしました。それは私にとってどういう意味ですか?私は彼らのコードベースのオンスを再利用することができませんでした。彼らは独自のセキュリティ戦略を展開していました。ごみ。
私はもっと上手に書くことができたので(私はそうかもしれませんが、それほど多くはありません)、ゴミとは言いませんが、私はもっとよく知っているからです。
私は、十分に統合され、大規模なコミュニティと開発者のサポートを備えた、確立されたテクノロジーを好みました。私が問題を抱えているとき、ドキュメントとここの間で、私は通常、かなり迅速に解決策を見つけることができます。さらに、コンポーネントの問題は文書化され、修正されており、回避することができます。
特に、学習体験のように扱っていることがわかっている場合は、独自の不可欠なコンポーネント(セキュリティなど)を本番環境に移行することは無責任です。