如何使用Xdebug和phpStorm调试Symfony命令?

时间:2017-03-01 21:08:53

标签: debugging docker phpstorm xdebug

首先让我们开始说我在Docker容器中运行整个项目,这意味着我没有在主机上安装任何东西。

我正在尝试调试Symfony命令,这是一种CLI脚本,区别在于它不是php script.php而是bin/console command

console文件里面有什么内容?见下文:

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

use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;

set_time_limit(0);

/** @var Composer\Autoload\ClassLoader $loader */
$loader = require __DIR__.'/../app/autoload.php';

$input = new ArgvInput();
$env = $input->getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(['--no-debug', '']) && $env !== 'prod';

if ($debug) {
    Debug::enable();
}

$kernel = new AppKernel($env, $debug);
$application = new Application($kernel);
$application->run($input);

我安装并配置了Xdebug,我也配置了phpStorm,这意味着使用浏览器(以及启用/禁用的扩展名)我可以调试我想要的任何内容。

通常,这是从控制台执行命令的方式(bash):

<path_to_symfony>/bin/console quote:notify -d 120 -e <some_email>

选项在这里是可选的,这意味着我可以调用:

<path_to_symfony>/bin/console quote:notify

它将双向运作。 我正在使用here中的文档来调试这样的命令。现在我正在设置IDE来调试Symfony命令:

  • 转到Run/Debug Configuration
  • 点击添加按钮(小绿色+符号)
  • 选择PHP脚本
  • 将其命名为SF Command
  • 在文件框中,我写了bin/console
  • 在Arguments框中,我写了quote:notify(这是我的命令)

但IDE首先说:Error: file not specified or invalid然后当我尝试执行命令时它说它不是有效的配置。 (还要注意小&#34; X&#34;这应该意味着什么是错的)

enter image description here enter image description here

我在这里缺少什么?我可以在这里得到一些帮助吗?我使用的是最新版本的phpStorm。

0 个答案:

没有答案