@MessageBrokerRouter 注釈を使用して、PHP クラスの evaluate メソッドの動作を変更します。
@MessageBrokerRouter 注釈により、evaluate メソッドの戻り値は、メッセージを伝搬させるターミナルを指定するために使用されます。 ターミナルは、Out ターミナル (ノードで定義) または作成した動的ターミナルのどちらでも構いません。 出力ターミナルは、メッセージ・フロー・エディターでノード・インスタンスに動的に追加できます。 evaluate メソッドから戻されたストリングは、定義した動的ターミナルまたは Out ターミナルのいずれかの名前に一致しなければなりません。 戻り値が指定されていない場合、evaluate メソッドが戻った後に、出力アセンブリーは次のノードには伝搬されません。
以下の例では、threshold エレメントの値が 10 より大きい場合、メッセージは Out ターミナルに経路指定されます。そうでない場合、メッセージは other ターミナルに経路指定されます。
<?php
class RouteTest {
/**
* Basic routing of a message.
*
* @MessageBrokerRouter
*/
function evaluate($assembly) {
// Simple filter
if ($assembly->XMLNSC->doc->threshold->getValue() > 10) {
return 'out';
} else {
return 'other';
}
}
}
?>
動的ターミナルについて詳しくは、動的ターミナルの使用を参照してください。