1

コンソール モードで php を使用し、関数をテストするための環境を作成したいと考えています。

関数をテストするたびに、Web ブラウザーを使用して新しいファイルを作成する必要はありません。

コンソールで関数にアクセスして、結果を返したいです。

どうすればいいですか?

アップデート:

おそらく私はこれをひどく説明しました。関数が返す結果だけを見たいだけです。

単体テストを学ばなければならないかもしれませんが、当面は、すべての機能を 1 つずつテストできるインタラクティブなコンソールだけが必要です。

私の場合、ワードプレス機能をロードする必要があります(通常.phpのファイルを使用してから、ブラウザでファイルを解析する方法を知っています)が、コマンドラインからphpを使用して実行できる場合はロードしません。

4

4 に答える 4

1

過去にphpshを使用したことがあり、非常に便利であることがわかりました。開始したら、ファイルの場所に移動する必要があります。次に、テストする必要がある関数を含むファイルがあることchdir()は明らかです。require()次に、関数呼び出しをシェルに入力するだけでテストできます。var_dump(some_function(1, 2));

于 2008-12-30T11:47:44.410 に答える
1

正確にどのような種類の機能をより具体的にする必要があると思います。Wordpress はそのままではそのようなものを提供しません。ほとんどの PHP アプリは提供しません。

また、そのようなアプリがそのような環境向けに開発されていない場合、ここで問題を引き起こしていると思います。

functions.php から "current_time()" を呼び出そうとする例と、それがうまくいかないことを認識するために私がしなければならなかった試みを次に示します。


php -r 'require "functions.php"; var_dump(current_time("mysql"));'

与える


Fatal error: Call to undefined function apply_filters() in functions.php on line 346

しようとしている


php -r 'require "functions.php"; require "plugin.php"; var_dump(current_time("mysql"));'

与える


Fatal error: Call to undefined function wp_cache_get() in functions.php on line 351

しようとしている


php -r 'require "functions.php"; require "plugin.php"; require "cache.php"; var_dump(current_time("mysql"));'

与える


Fatal error: Call to a member function get() on a non-object in cache.php on line 93

私が見るソースの最後のエラーを見る


 function wp_cache_get($id, $flag = '') {
     global $wp_object_cache;

     return $wp_object_cache->get($id, $flag);
 }

グローバル変数を使用すると、不可能ではないにしても、他の環境でのテストが PITA になります。

これがあなたがやろうとしていることではない場合は、質問をより具体的/詳細にする必要があります。

于 2008-12-30T11:08:38.827 に答える
0

一般的な意味で「単体テスト」を読んでから、それらを PHP に適用してみてください。

使用しているフレームワーク (存在する場合)、コードのスタイル、および実行するテストによって、使用する必要がある正確なメソッドが決まります。最初に単体テストの概念を理解し、それをコーディングのベスト プラクティスに実装することによってのみ、この点で進歩を遂げることができます。

于 2008-12-30T09:56:59.580 に答える
0

どうですか:

php -a

readline をサポートするように php をコンパイルすると、より洗練されたものになります。

于 2008-12-30T11:08:37.140 に答える