symfony2 application, vagrant & ant: stty: standard inpu


symfony2 application, vagrant & ant: stty: standard input: Invalid argument

我正在尝试使用vagrant和默认的ubuntu 10.04 64位机器将我的开发环境(symfony2应用程序)从我的Windows 7本地主机移动到虚拟机。一切都设置好了,几乎可以工作,但有一件事困扰着我:

当我运行 ant 并执行 phpunit 时,我在执行自制引导程序时出现以下错误:

stty: standard input: Invalid argument

我可以将问题缩小到以下代码行,该代码行执行symfony cache:warmup命令:

executeCommand($application, "cache:warmup");

这将执行以下命令:

php app/console -e test -q cache:warmup
在没有 ant 的情况下运行

phpunit 工作正常,在没有 executeCommand 行的情况下运行 ant 也是如此。

我读了一些关于这个stty错误的信息,并查找了~/.bashrc~./profile/etc/bash.bashrc/etc/profile以及/root/.bashrc/root/.profile,但没有找到类似tty或stty的东西。所以我不知道我可以删除什么来使其工作。

我有点卡住了,因为我需要缓存预热并且无法弄清楚出了什么问题。

这花了一段时间才弄清楚,但现在我明白了。

出于某种原因,传递给 symfony2 应用程序对象的选项仅在由 ant 运行时导致问题。我对导致它的原因没有任何了解,但是将命令更改为此命令可以解决此问题:

php app/console --env=test --quiet cache:warmup

由于这只是长形式,不会改变任何东西,我很高兴。我的整个执行命令函数如下所示:

function executeCommand($application, $command, Array $options = array()) {
    $options["--env"] = "test";
    $options["--quiet"] = true;
    $options = array_merge($options, array('command' => $command));
    $application->run(new ArrayInput($options));
}

唯一的行更改是 2 和 3,其中数组的键从 -e-q 更改为 。我希望这对一个或另一个在这样的问题上挣扎的人有所帮助!