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 $firstwird aund $secondwird 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 $flagist barund otherist "$ default".
Beachten Sie, dass Sie $argvwie 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.