2013-05-25 4 views
6

Gibt es eine Möglichkeit, einen Rückgabewert von einer Ad-hoc-Aufgabe zu erhalten?Wie gibt man einen Wert von der Ad-hoc-Aufgabe von phing zurück?

Zum Beispiel, ich versuche, die Versionsnummer von einer JSON-String in einer Datei zu erhalten, wie folgt:

<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> 

ich nur Dokumentation Werte zur Einstellung finden kann, aber keine Werte zu bekommen. Allerdings scheint die adhoc typdef task eine get Syntax zu zeigen, also frage ich mich, ob es eine Möglichkeit gibt, dies zu tun.

Antwort

12

Ich bin mir nicht sicher, ob ich vollständig verstehe. Es klingt wie, anstatt

$this->version

Einstellung, die Sie anstelle dieses

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

fügt die 'Version' Eigenschaft zu einem Projekt Instanz aufrufen sollte. Sie müssen das Attribut für Ihre Aufgabe nicht festlegen müssen, es sei denn, Sie möchten später ändern, welcher Eigenschaftenname in Ihrem Projekt festgelegt wird (von 'Version' zu einer anderen Eigenschaft).

`

<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

Wow ... ich überall gesucht und nicht finden kann - Teil> Projekt in allen Dokumenten. Genau das habe ich gesucht. – jloosli

Verwandte Themen