新的 Symfony 3 安装:无法打开输入文件:在 Composer 安装中的应用/控制台

2022-08-30 18:01:16

我通过官方的symfony安装程序(http://symfony.com/download)安装了一个新的symfony3实例。在完成第一件事之后,我将项目提交到Git,并于前几天在另一台计算机上克隆了它。克隆后,我运行“作曲家安装”来安装所有符号依赖项。现在问题来了:脚本停止并显示错误:。没错 - symfony3有一个新的目录结构 - 所以现在驻留在 - 而不是在.如何告诉作曲家/项目使用新结构而不是旧结构?ScriptHandler::clearCacheCould not open input file: app/consoleconsole/bin/app

我在这里阅读了关于控制台命令的(新的Symfony 3目录结构是什么?) - 但这在我的情况下不起作用。SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true

有什么提示吗?


答案 1

只需创建目录。之后,将正常工作。varcomposer 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']);
}

因此,您需要同时具有 in 和此目录。symfony-var-dircomposer.jsonextra


答案 2

从文件名中的额外配置密钥中获取 dir 作为 。因此,请检查编辑器是否包含正确的配置键,例如:ScriptHandlercomposer.jsonsymfony-bin-dir

composer.json

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

编辑:

问题与作曲家的缓存有关。它已通过命令清除它解决了:

>php composer.phar clear-cache

希望这有帮助。


推荐