新的Symfony 3安装:无法在composer安装中打开输入文件:app / console

时间:2015-12-10 09:52:30

标签: php composer-php symfony

我通过官方的symfony-installer(http://symfony.com/download)安装了一个新的symfony3-instance。在完成第一件事之后,我将项目提交给Git,并在另一台计算机上克隆了它。 克隆后,我跑了#34; composer install"安装所有symfony-dependencies。 现在出现了问题:脚本ScriptHandler::clearCache因错误而停止:Could not open input file: app/console。 这是正确的 - symfony3有一个新的目录结构 - 所以console现在位于/bin - 而不是/app。 如何告诉作曲家/项目使用新结构而不是旧结构呢?

我在这里(What is the new Symfony 3 directory structure?)阅读了有关控制台命令SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true的内容 - 但这在我的案例中并不起作用。

任何提示?

3 个答案:

答案 0 :(得分:20)

ScriptHandlercomposer.json文件名中的额外配置密钥的目录作为symfony-bin-dir。因此,请检查作曲家是否包含正确的配置键,例如:

composer.json

....
"extra": {
    "symfony-app-dir": "app",
    "symfony-bin-dir": "bin",
    "symfony-var-dir": "var",
    ....

编辑:

问题与作曲家的缓存有关。解决了以下命令解决它:

>php composer.phar clear-cache

希望这有帮助。

答案 1 :(得分:9)

我遇到了同样的问题。该脚本使用var目录的存在来决定是使用新目录结构还是使用旧目录结构。如果var存在,则使用新的目录结构。否则它使用旧结构。

默认的.gitignore文件阻止将var目录和bin目录添加到git。

我为解决这个问题所做的是在项目目录中编辑.gitignore,使它看起来像这样:

/app/config/parameters.yml
/bin/*
/build/
/composer.phar
/vendor/
/web/bundles/
/var/*
!var/cache
/var/cache/*
!var/cache/.gitkeep
!var/logs
/var/logs/*
!var/logs/.gitkeep
!var/sessions
/var/sessions/*
!var/sessions/.gitkeep
!bin/console
!bin/symfony_requirements
/phpunit.xml

我不假装是.gitignore的专家,所以我不确定这是最优雅的做法,但这对我有用。

答案 2 :(得分:0)

我遇到了同样的问题:

[RuntimeException]
An error occurred when executing the ""cache:clear --no-warmup"" command:

Could not open input file: app/console

我的控制台文件也位于/ bin /文件夹中,因此每次从DevOps克隆项目时,我都必须从项目的根目录调用此命令以清除缓存:

php bin/console cache:clear

然后我可以运行composer install,它可以正常工作