当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《新的Symfony3安装:无法在composer安装中打开输入文件:app/console》经验,为你挑选了3个好方法。

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

我在这里阅读(什么是新的Symfony 3目录结构?)关于console-command SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true- 但这在我的情况下不起作用.

有小费吗?



1> luchaninov..:

只需创建var目录.在这之后composer installcomposer update将工作正常.

说明:

vendor/sensio/distribution-bundle/Composer/ScriptHandler.php:462

protected static function useNewDirectoryStructure(array $options)
{
    return isset($options['symfony-var-dir']) && is_dir($options['symfony-var-dir']);
}

所以,你既需要有symfony-var-dircomposer.jsonextra,并有该目录已有.


我可以确认:当`var`缺失时=>无法在composer install中打开app/console.创建`var`对我有用.

2> Matteo..:

ScriptHandler从额外的配置重点采取目录composer.json文件名作为symfony-bin-dir.因此,请检查作曲家是否包含正确的配置键,例如:

composer.json

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

编辑:

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

>php composer.phar clear-cache

希望这可以帮助.



3> 小智..:

我一直遇到同样的问题.该脚本使用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的专家,所以我不确定这是最优雅的方式,但这对我有用.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有