SCA コンポーネントではないスクリプトからのサービスの指定およびコール

SCA コンポーネントは、インスタンス変数に @reference アノテーションを指定することで他のコンポーネントやサービスのプロキシを取得することができます。 しかし、コンポーネントではないスクリプトの場合はこれは不可能です。 クライアントスクリプトがコンポーネントではない場合は、静的メソッド SCA::getService() を使用して ローカルあるいはリモートサービスのプロキシを取得する必要があります。 getService() メソッドの引数には URI を指定します。 通常は、これはコンポーネントを含むローカル PHP スクリプトの場所か、 あるいは wsdl ファイルの場所となります。また、先ほどの節で説明した @binding アノテーションで指定するものと同じようになります。 つまり、相対 URI はクライアントスクリプトの場所を基準として解決し、 PHP の include_path や現在の作業ディレクトリは使用しません。

たとえば、あるスクリプトで ExchangeRate および StockQuote サービスのプロキシを取得する必要があるが、そのスクリプトがコンポーネントではない場合、 getService() メソッドを次のように使用します。

例1 getService を使用したプロキシの取得

<?php
$exchange_rate 
SCA::getService('../ExchangeRate/ExchangeRate.php');
$stock_quote   SCA::getService('../StockQuote/StockQuote.wsdl');
?>

サービスのメソッドをコールするには、返されたプロキシを使用します。 これはコンポーネント内からコールする場合と同じです。

例2 プロキシ上でのコール

<?php
$quote  
$stock_quote->getQuote($ticker);
$rate   $exchange_rate->getRate($currency);
?>