symfony2应用程序,vagrant& ant:stty:标准输入:参数无效

时间:2012-05-28 14:37:32

标签: php ant symfony phpunit stty

我正在尝试使用vagrant和默认的ubuntu 10.04 64位计算机将我的开发环境(symfony2应用程序)从我的Windows 7 localhost移动到虚拟机。一切都已建立,几乎可以运作,但有一件事困扰着我:

当我运行ant并执行phpunit时,我在执行自制bootstrap时遇到以下错误:

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和{{1}没有找到像tty或stty这样的东西。所以我不知道我能删除什么才能让它发挥作用。

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

1 个答案:

答案 0 :(得分:1)

这需要一段时间来弄明白,但我现在明白了。

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

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

由于这只是长篇大论,并没有改变任何东西,我感到非常高兴。我的整个executeCommand函数如下所示:

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更改。我希望这可以帮助一个或那个与这样的问题斗争的人!