6

有没有办法从 phing ad-hoc 任务中获取返回值?

例如,我试图从文件中的 JSON 字符串中获取版本号,如下所示:

    <target name="get-app-version">

    <adhoc-task name="appversion" ><![CDATA[
        class AppversionTask extends Task {

            private $version;

            public function getVersion() {
                return $this->version;
            }
            function main() {
                $manifest = file_get_contents("manifest.json");
                $manifest_json = json_decode($manifest);
                $version = $manifest_json->version;
                $this->log("App version: " . $version);
                $this->version = $version;
            }
        }
    ]]></adhoc-task>
    <appversion output="version" />
    <echo message="${version}" />

</target>

我只能找到有关设置值的文档,而不是获取值。但是,临时 typdef 任务似乎显示了get语法,所以我想知道是否有某种方法可以做到这一点。

4

1 回答 1

12

我不确定我是否完全理解。听起来,而不是设置

$this->version

你应该打电话

$this->project->setProperty('version', $version);

这会将“版本”属性添加到您的项目实例中。您不需要为您的任务设置属性,除非说,您稍后会想要更改项目中设置的属性名称(从“版本”更改为其他属性)。

`

<adhoc-task name="appversion" ><![CDATA[
    class AppversionTask extends Task {

        function main() {
            $manifest = file_get_contents("manifest.json");
            $manifest_json = json_decode($manifest);
            $version = $manifest_json->version;
            $this->log("App version: " . $version);
            $this->project->setProperty('version', $version);
        }
    }
]]></adhoc-task>
<appversion />
<!-- The version property should now be set -->
<echo message="${version}" />

`

于 2013-07-28T05:48:39.787 回答