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?
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.
Solucion Posible:
$_SERVER['argv'][3]
Comand:
drush scr 'testScript.php' field
Maintenant, $ _SERVER ['argv'] [3] = field
Prendre plaisir!
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'];
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