開発の観点から見ると、回路は非常にクラシックに見えます。 開発時には、PHP.Tools for ADO.NET Data Servicesに含まれているPHPDataSvcUtilユーティリティを使用する必要があります。 このユーティリティは、ADO.NET Data Servicesに基づくサービスで利用可能なメタデータに基づいて、PHPでプロキシクラスを生成します。 その後、PHP Toolkit for ADO.NET Data ServicesライブラリもPHPプロジェクトに接続する必要があります。 さらに、これらすべての簡単な手順の後、PHPアプリケーションのフレームワーク内でADO.NET Data Servicesプラットフォームの全機能をより便利な方法で使用することが可能になります。
ADO.NET Data Servicesを照会するためのPHPプラットフォームコードがどのようになるかを見てみましょう。 まず、PHPDataSvcUtilユーティリティを使用して生成されたプロキシクラスを含むファイルを含める必要があります。
<?PHP
require_once 'NorthwindClient.php';
define("SERVICE_URI", "http://localhost:8080/Northwind.svc");
?>
その後、クライアントロジックを実装し、リモートサービスにリクエストを行うクラスオブジェクトを作成できます。 残念ながら、ここでは、LINQ構文を使用してサービスリクエストを作成することはできません。 したがって、URIの形式の要求は手動で記述する必要があります。
<?PHP
$client = new NorthwindEntities(SERVICE_URI);
$query = $client->ExecuteQuery("Customers?\$filter=Country eq 'UK'");
?>
これで、リクエストを正常に作成した後、データを申請して結果をユーザーに表示できます。
<?PHP
foreach($query as $customer)
{
echo "";
echo $customer->CustomerID;
echo "<br/>";
echo $customer->CompanyName;
echo "";
}
?>
ここでは、厳密に型指定されたオブジェクトを参照していることが明確にわかり、結果はオブジェクトコレクションの形式で取得されます。 この方法は、.NETクライアントのフレームワーク内でADO.NET Data Servicesを操作する方法に非常に似ています。 これらのエンティティクラスは、PHPDataSvcUtilユーティリティによっても生成されました。
Pablo Castro(プログラムマネージャー、ADO.NET Data Services)とClaudio Caldato(プログラムマネージャー、相互運用性、技術戦略チーム)は、チャンネル9(en)でこのライブラリの簡単な概要を説明しました。
最後に、このプロジェクトがオープンソースプロジェクトであり、CodePlexで利用できることは非常に興味深いことです。 さらに、このプロジェクトはPersistent Systemsによって開発されていますが、Microsoftによって支払われています。
参照:
- アストリアチームブログのお知らせ-blogs.msdn.com/astoriateam/archive/2009/08/21/announcing-the-php-toolkit-for-ado-net-data-services.aspx
- 相互運用性チームブログの説明-blogs.msdn.com/interoperability/archive/2009/08/21/a-new-bridge-for-php-developers-to-net-through-rest-php-toolkit-for-ado- net-data-services.aspx
- Channel9レビュー-channel9.msdn.com/posts/jccim/Consuming-data-over-the-web-between-PHP-and-NET-with-REST-and-ADONET-Data-Services
- CodePlexプロジェクト自体-phpdataservices.codeplex.com