スクリプトをテストして開発するときに、特定の$ _GET変数を定義できます。
スクリプトがトラフmod_php/apacheと呼ばれる場合、これらの変数はURLに?foo=bar
を追加して定義されます。
これはまったく可能ですか?
スクリプトをテストして開発するときに、特定の$ _GET変数を定義できます。
スクリプトがトラフmod_php/apacheと呼ばれる場合、これらの変数はURLに?foo=bar
を追加して定義されます。
これはまったく可能ですか?
いいえ、CLI経由では不可能です。ただし、値を$_GET
変数に手動で割り当てることができます。
または、コマンドライン引数を使用して$_GET
に割り当てることができます。
$_GET['data'] = $argv;
それは少し扱いやすいです^^ ..
$_GET['foo'] = 'bar';
を設定するだけで済みます。
何かするために$ _GET ['foo']を使っているコードがあると仮定すると、それを処理する最良の方法は、そのコードをクラス/メソッド/関数に抽出し、コンテキスト固有の足場を持つことです。環境から関連するデータを収集し、それをコードブロックに渡してそれを処理します。
それでは、あなたはこのように、インラインPHPスクリプトを持っていたとしましょう:
$foo = $_GET['foo'];
// do what I need to do with $foo
その後、あなたはあなたのインラインPHPスクリプトは、現在
$foo = $_GET['foo'];
doBar($foo);
だろう
function doBar($foo) {
// do what I need to do with $foo
}
機能にこれをラップすることができ
そして、$ fooを直接設定することで、これをテストするCLIスクリプトを非常に簡単に書くことができます
$foo = 'test value';
doBar($foo);
またはCLI入力を解析し、代わりにそこからのfooを取得することによって。基本的には
、(伝統的なMVCにモデル)のものをして、あなたのコードは、その環境から隔離され、ユニットテストなど一つのことで、CLIスクリプトで、HTTPリクエストを経由して使用することができます$ _GETと$ _POSTのスーパーグローバルに独自の値を割り当てるのは間違いありません。それはあなたの問題をいくつかの方法で解決するためには臭いがあり、ショートカットです。
なぜCLIプログラムで$ _GETを使用しようとしているのか自問してください。デザインの改訂を検討してください。 –
あなたはまったく正しいです。それは、cliが発射することにより、開発中のデバッグとクイックテストが非常に簡単になり、それぞれの変更に対してfirefoxに簡単に変更できることです。プロダクションではGETが使用されます。私の開発環境では、単純にそこにいくつかのものを定義する方法があります。 – berkes