如何在 phing 属性 中收集自定义 phing 任务的输出?

How to collect output of a custom phing task in a phing property?

背景

我从这个开放式问题开始

然后尝试使用 phing 的本机实用程序解决它,但卡住了 - How to return a value from a phing target?

现在我正在尝试 编写自定义 Phing 任务,按照 https://www.phing.info/docs/guide/trunk/ch06s06.html。我尝试在其中回显文件列表,目的是在从构建 xml -

调用任务时以某种方式在 属性 中收集相同的文件
<addedfiles message="Hello World" outputProperty="output"/>

但我发现构建 xml 文件的调用不支持 outputProperty 属性。

任何关于如何执行此操作或其他两个问题的指示都会有很大帮助。

哦,很简单。我们可以像这样在自定义任务 class 中设置 属性 -

$this->getProject()->setNewProperty('output', "hello world");

它可以在构建 xml 中访问,在任务调用之后,就像这样 -

<addedfiles message="Hello World" />
<echo>See ${output}</echo>

您可以通过这样做改进您的解决方案

private $outputProperty;

public function setOutputProperty($str)
{
    $this->outputProperty = $str;
}

然后,当你捕捉到输出时

$this->getProject()->setNewProperty($this->outputProperty, "hello world");