web-dev-qa-db-fra.com

Comment passer l'argument au fichier php en utilisant une commande drush?

J'ai un petit script php dans mon dossier public appelé sample.php. J'exécute ce fichier en utilisant la commande drush drush scr sample.php.

Je veux savoir comment passer un argument au fichier php à l'aide de la commande drush et comment obtenir des arguments dans le fichier php?

8
Guru

Ceci est expliqué très bien dans drush topic scripts.

Votre script doit commencer par:

#!/usr/bin/env drush
<?php

Ensuite, vous pouvez appeler directement votre script. Par exemple, si vous avez enregistré votre script dans un fichier appelé myscript, vous l'appellerez via:

$ myscript a b --flag=bar

Drush fournit une méthode appelée drush_shift Qui vous permet d'accéder à vous un à la fois:

$first = drush_shift();
$second = drush_shift();

Dans l'exemple ci-dessus, $first Sera a et $second Sera b. Vous pouvez accéder à vos options via drush_get_option() comme d'habitude.

$flag = drush_get_option('flag');
$other = drush_get_option('other', 'default');

Dans l'exemple ci-dessus, $flag Est bar et other est `$ default '.

Notez que vous pouvez utiliser $argv Comme suggéré dans l'autre réponse, mais si vous faites cela, vos arguments et options seront mélangés et vous devrez les analyser vous-même. L'utilisation de drush_shift() et drush_get_option(); est plus pratique.

12
greg_1_anderson

Solucion Posible:

$_SERVER['argv'][3]

Comand:

drush scr 'testScript.php' field

Maintenant, $ _SERVER ['argv'] [3] = field

Prendre plaisir!

0
Fedo Peralta

Vous pouvez utiliser une variable d'environnement:

MY_FLAG=value drush do_something

En php, vous pouvez ensuite récupérer cette variable:

echo $_SERVER['MY_FLAG'];
0
David Merckx

En ligne de commande php, vous pouvez utiliser des arguments de passage pour votre script et à l'intérieur de votre script, saisissez-le en utilisant la variable $ argv:

vérifiez ceci: http://php.net/manual/en/reserved.variables.argv.php

0
mamoun othman