いくつかの WP-CLI コマンドを デバッグバーコンソールからテストする方法を探しています ここで私は通常テストしますPHP。ウィンドウをSSHに変更したくない場合は、これが効果的な再利用/開発方法CLICLI以外のメソッド。
私は exec を見ましたが、それはコマンドの最後の行に見えるものだけを示しています。
echo exec('ls -la'); // -rw-rw-r-- 1 www-data www-data 18108 Jan 20 21:57 widgets.php
誰かがより複雑な一連のコマンドをひとまとめにして人間が判読しやすい方法で連結しようとしたことはありますか?
exec()
はまだ正しい変数で動作するかもしれません。
$last_line = exec( $command, &$output, &$return_var )
2番目のパラメーターは、関数からの戻り値が最後の行をキャプチャーしている間に、すべての戻りデータをキャプチャーします。
string exec( string $command, array &$output, int &$return_var )
はシステムコマンドを呼び出し、おそらく自分自身で出力を処理するためのものです。string Shell_exec( string $cmd )
Shellを介してcommandを実行し、完全な出力を文字列として返します。string system( string $command, int &$return_var )
はシステムコマンドを実行し、その出力を即座に表示するためのものです - おそらくテキストです。passthru( string $command, int &$return_var )
はシステムコマンドを実行するためのものです。あなたはそこから生の戻り値を得たいと思います - おそらく何らかのバイナリです。$commands = array(
'wp --version',
'whoami',
'pwd',
'ls -la',
'wp theme list',
'wp plugin list',
);
echo '<pre>'.PHP_EOL;
foreach ($commands as $command ) {
// run command
exec($command, $retval);
// convert output array to text
echo implode(PHP_EOL, $retval) . PHP_EOL;
// clear the var for the next command
unset($retval);
}
echo '</pre>';
WP-CLIは、exec
、spawn
、またはfriendsを使用してWebサーバー環境からそれらを実行する権限を持つことができる必要があるという点で、他のサーバーサイドユーティリティと違いはありません。明白な理由から、これらすべての種類のPHP APIがほとんどのサーバーでブロックされているため、管理していないサーバー(SSHアクセスを持たないことを指示)が実行されることはほとんどありません。ワードプレスのうちWP-CLI。