PHPCompute ノードをフィルター・ノードとして使用することで、メッセージを経路指定します。
始める前に:
PHPCompute ノードをメッセージ・フローに追加します。
デフォルトでは、出力メッセージ・アセンブリーは、PHP スクリプト内の evaluate メソッドが処理された後に、Out ターミナルに伝搬されます。 ただし、PHPCompute ノードにも動的出力ターミナルがあるため、メッセージの内容に基づいてメッセージを適切なターミナルに伝搬することで、それをフィルター・ノードとして使用できます。
PHP コード内の @MessageBrokerRouter 注釈を使用して、メッセージを evaluate メソッドのストリング戻り値で指定されたターミナルに経路指定することができます。 ストリングが戻されない場合、メッセージは伝搬されません。
以下の例は、PHP スクリプト・ファイル内の @MessageBrokerRouter 注釈を示しています。
/**
* @MessageBrokerRouter
*/
function evaluate($message) {
if ($message->XMLNSC->doc->threshold->getValue() > 10) {
return 'out';
} else {
return 'other';
}
}
メッセージ・ルーティングでの @MessageBrokerRouter 注釈の使用の詳細については、@MessageBrokerRouterを参照してください。
または、メッセージを Label ノードに直接伝搬することもできます。 このメソッドを使用する場合、RouteToLabel ノードを使用する必要はなく、メッセージを出力ターミナルに伝搬する必要はありません。
以下の例は、上記のメッセージ・フロー内の PHPCompute ノードと関連付けられた PHP コードを示しています。 この PHP コードは、メッセージを Label2 と呼ばれるノードに経路指定することを指定します。
…
$output->routeToLabel('Label2');