Drushコマンドを使用してPHPファイルに引数を渡す方法は?


8

パブリックフォルダーにsample.phpという小さなphpスクリプトがあります。このファイルは、drushコマンドdrush scr sample.phpを使用して実行します。

Drushコマンドを使用してPHPファイルに引数を渡す方法と、PHPファイルで引数を取得する方法を知りたいですか?

回答:


12

これはで非常にうまく説明されていdrush topic scriptsます。

スクリプトは次で始まる必要があります。

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

次に、スクリプトを直接呼び出すことができます。たとえば、スクリプトをというファイルに保存したmyscript場合は、次のように呼び出します。

$ myscript a b --flag=bar

Drushには、drush_shift一度に1つずつアクセスできると呼ばれるメソッドが用意されています。

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

上記の例で$firstは、aとに$secondなりますbdrush_get_option()通常どおり、オプションを使用してアクセスできます。

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

上記の例で$flagは、is barおよびotherisは「$ default」です。

$argv他の回答で提案されているように使用できますが、これを行うと、引数とオプションが混在するため、自分で解析する必要があります。使用drush_shift()drush_get_option();てより便利です。


を使用drush_shift()drush_get_option()て、スクリプトを直接実行可能にすることなく機能します。おそらく回答は、関連する部分をオプションとしてマークすることによって、それを反映する必要があります。
zwirbeltier

0

phpコマンドラインでは、スクリプトに引数を渡すことができ、スクリプト内で$ argv変数を使用してそれを取得できます。

これをチェックしてください:http : //php.net/manual/en/reserved.variables.argv.php


ドラッシュコマンドとは
Guru

1
drushコマンドは次のとおりです。Drushscr。スクリプトファイルヘッダー#!/ usr / bin / env drushにDrushを追加し、$ arg = drush_shift()を使用して配列として引数を取得することにより、Drushを互換にする方法があります
ROOT

サンプルコマンドを提供できますか?
Guru

上記の質問への回答と同様に、以前のすべての回答と実際の例の要約と同じように。次のようなものを実行できますdrush scr path/to/script --id=15。そして、スクリプトが#!/usr/bin/env drush(@ greg_1_andersonで述べたように)で始まる場合は、$id = drush_get_option('id');このスクリプト内からパラメーターを取得できます。
Vlad Moyseenko 2016

0

環境変数を使用できます。

MY_FLAG=value drush do_something

PHPでは、この変数を取得できます。

echo $_SERVER['MY_FLAG'];

0

可能なソリューション:

$_SERVER['argv'][3]

コマンド:

drush scr 'testScript.php' field

今、$ _ SERVER ['argv'] [3] = フィールド

楽しい!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.