@MessageBrokerLocalEnvironmentTransform 注釈を使用して、PHP クラスの evaluate メソッドの動作を変更します。
@MessageBrokerLocalEnvironmentTransform 注釈は @MessageBrokerSimpleTransform 注釈と似ていますが、出力アセンブリーにローカル環境ツリーのコピーを作成します。
@MessageBrokerLocalEnvironmentTransform を使用する場合、PHPCompute ノードの下流のノードでは、ローカル環境への変更が分かります。 @MessageBrokerLocalEnvironmentTransform を使用しない場合、ノードは引き続きローカル環境を変更でき、フロー内のすべてのノード (上流のノードを含む) は変更を確認できます。
以下の例では、ローカル環境に 2 つの新規フォルダーを追加し、Wildcard サブツリーをローカル環境から出力メッセージにコピーします。
<?php
class LocalEnvironmentTest {
/**
* Test local environment messages.
*
* @MessageBrokerSimpleTransform
* @MessageBrokerLocalEnvironmentTransform
*/
function evaluate($output_assembly, $input_assembly) {
$output_assembly[MB_LOCAL_ENVIRONMENT]->Folder1 = 'some string';
$output_assembly[MB_LOCAL_ENVIRONMENT]->Folder2->SubFolder =
'another string';
$output_assembly->XMLNSC->Message->InputLocalEnvironment =
$input_assembly[MB_LOCAL_ENVIRONMENT]->Wildcard;
}
}
?>