ポンクチュアル デバッグの問題を理解すると、いつでもデバッグ メッセージを出力できますecho
。var_dump
Symfony のアプリケーションなしでグローバル デバッグ メッセージを使用してコマンドを使用する場合は、次の方法があります。
Symfony は 3 つOutputInterface
の異なる を提供します
ファイルへのデバッグ
そのようにすると、コマンドを呼び出すたびに$output->writeln()
、新しい行が書き込まれます/path/to/debug/file.log
use Symfony\Component\Console\Output\StreamOutput;
use Symfony\Component\Console\Input\ArrayInput;
use Acme\FooBundle\Command\MyCommand;
$params = array();
$input = new ArrayInput($params);
$file = '/path/to/debug/file.log';
$handle = fopen($file, 'w+');
$output = new StreamOutput($handle);
$command = new MyCommand;
$command->run($input, $output);
fclose($handle);
コンソールでのデバッグ
ConsoleOutput
代わりに使用することを除いて、静かに同じプロセスです
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Input\ArrayInput;
use Acme\FooBundle\Command\MyCommand;
$params = array();
$input = new ArrayInput($params);
$output = new ConsoleOutput();
$command = new MyCommand;
$command->run($input, $output);
デバッグなし
メッセージは印刷されません
use Symfony\Component\Console\Output\NullOutput;
use Symfony\Component\Console\Input\ArrayInput;
use Acme\FooBundle\Command\MyCommand;
$params = array();
$input = new ArrayInput($params);
$output = new NullOutput();
$command = new MyCommand;
$command->run($input, $output);