Antworten:
Dies wird ganz schön in erklärt drush topic scripts
.
Ihr Skript sollte beginnen mit:
#!/usr/bin/env drush
<?php
Anschließend können Sie Ihr Skript direkt aufrufen. Wenn Sie Ihr Skript beispielsweise in einer aufgerufenen Datei gespeichert haben myscript
, rufen Sie es auf über:
$ myscript a b --flag=bar
Drush bietet eine Methode namens drush_shift
, mit der Sie einzeln auf Sie zugreifen können:
$first = drush_shift();
$second = drush_shift();
Im obigen Beispiel $first
wird a
und $second
wird b
. Sie können drush_get_option()
wie gewohnt über auf Ihre Optionen zugreifen .
$flag = drush_get_option('flag');
$other = drush_get_option('other', 'default');
Im obigen Beispiel $flag
ist bar
und other
ist "$ default".
Beachten Sie, dass Sie $argv
wie in der anderen Antwort vorgeschlagen verwenden können. Wenn Sie dies jedoch tun, werden Ihre Argumente und Optionen miteinander vermischt, und Sie müssen sie selbst analysieren. Verwenden drush_shift()
und drush_get_option();
ist bequemer.
In der PHP-Befehlszeile können Sie Übergabeargumente für Ihr Skript verwenden und es in Ihrem Skript mithilfe der Variablen $ argv abrufen:
Überprüfen Sie dies: http://php.net/manual/en/reserved.variables.argv.php
drush scr path/to/script --id=15
. Und wenn Ihr Skript dann mit #!/usr/bin/env drush
(wie @ greg_1_anderson erwähnt) beginnt , können Sie Ihren Parameter über $id = drush_get_option('id');
dieses Skript abrufen .
Sie können eine Umgebungsvariable verwenden:
MY_FLAG=value drush do_something
In PHP können Sie dann diese Variable abrufen:
echo $_SERVER['MY_FLAG'];
Mögliche Lösung:
$_SERVER['argv'][3]
Befehl:
drush scr 'testScript.php' field
Nun ist $ _SERVER ['argv'] [3] = Feld
Genießen!
drush_shift()
unddrush_get_option()
funktioniert auch, ohne das Skript direkt ausführbar zu machen. Vielleicht sollte die Antwort dies auch widerspiegeln, indem das relevante Teil als optional markiert wird.