Phing exec Befehl zum Setzen der Umgebungsvariablen

7

Ich versuche eine Umgebungsvariable in einem Build-Skript mit phing zu setzen. Dies geschieht normalerweise folgendermaßen:

%Vor%

In Phing habe ich Folgendes getan, aber es funktioniert nicht.

%Vor%     
tom 27.04.2011, 13:23
quelle

3 Antworten

6

Fettdruck: Es gibt keine Möglichkeit, eine (Unix) -Shellvariable in PHP zu setzen / exportieren, so dass sie innerhalb des Bereichs sichtbar ist, der das PHP-Skript gestartet hat.

%Vor%

Gibt nichts zurück. Wie PHP es nicht tun kann, so kann auch nicht phing.

Der Zugriff auf Shell-Umgebungsvariablen über mehrere Script-Runs hinweg (wenn es das ist, was Sie wollen) scheint auch eine unideale Design-Entscheidung zu sein, ziemlich Stateful.

Abgesehen davon würde ich Sie dringend bitten, sich an das Phing zu halten und seine magere Lektion zu lernen. Phing hilft zu einem gewissen Grad staatenloses Denken.

    
Christoph Strasen 28.04.2011, 13:40
quelle
9

Ich sehe, dass dies eine ziemlich alte Frage ist, aber ich denke nicht, dass sie auf die beste Weise beantwortet wurde. Wenn Sie eine Shell-Variable exportieren möchten, zum Beispiel wenn Sie phpunit von phing ausführen und vor dem Aufruf von phpunit einen Export durchführen möchten, versuchen Sie:

%Vor%

Führen Sie einfach den Export aus und rufen Sie Ihren Befehl innerhalb desselben exec-Tags auf. Trennen Sie die Exportanweisung und die Shell-Programmdatei wie gezeigt mit einem Semikolon. Ihr Skript kann mit der Standard-PHP-Funktion auf den Wert zugreifen:

%Vor%     
Andy H 15.07.2014 13:35
quelle
4

Ich hatte noch nie zuvor von Phing gehört, aber das sieht als Build-Tool sehr vielversprechend aus. Danke fürs Schreiben! Ich habe den doc auf phing.info durchgesehen, ich habe folgende Möglichkeit gefunden:

# 0 Ich möchte einen Punkt klarstellen. Sagst du das

%Vor%

setzt MY_VAR nicht auf den Wert, so dass es in den laufenden Prozessen sichtbar ist? Ich wäre überrascht, aber ich würde verstehen, wenn Sie nicht so Ihr Build-Skript ausführen möchten.

# 1 Ich denke, im Kontext eines Build-Tools soll eine Funktion wie exec ein eigenständiges Programm ausführen. Während also die exec laufen und MY_VAR setzen kann, geschieht dies alles in einem Subprozess, der sofort verschwindet Wenn die Ausführung beendet ist und die nächste Aufgabe in der Datei build.xml weiter verarbeitet wird.

Wenn Sie nur sicherstellen möchten, dass Ihr Phing-Skript mit bestimmten Werten für env_vars ausgeführt wird, können Sie

ausprobieren %Vor%

Vermutlich können Sie also

tun %Vor%

# 2 haben Sie in Erwägung gezogen, eine Datei mit den Eigenschaften zu verwenden? Siehe Ссылка und scrollen Sie nach unten für Informationen über Build.properties

# 3 auch ...

%Vor%

Sie würden mit etwas wie

auf sie zugreifen %Vor%

# 4 Das sieht näher aus, als Sie wirklich wollen

%Vor%

Ich hoffe, das hilft.

    
shellter 27.04.2011 13:58
quelle