2013-05-25 3 views
6

Есть ли способ получить возвращаемое значение из специальной задачи phing?Как вернуть значение из специальной задачи phing?

Например, я пытаюсь получить номер версии из строки 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> 

Я могу только найти документацию по настройке значения, но не получает значение. Тем не менее, adhoc typdef task, похоже, показывает синтаксис get, поэтому мне интересно, есть ли способ сделать это.

ответ

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}" /> 

`

+1

Ого ... Я искал повсюду и не могли найти -> проект участия в каких-либо документов. Это именно то, что я искал. – jloosli

Смежные вопросы