【问题标题】:Symfony2: why bundle not in vendor directory (FOSBundle for example)?Symfony2:为什么捆绑不在供应商目录中(例如 FOSBundle)?
【发布时间】:2016-03-26 03:11:51
【问题描述】:

我正在使用 symfony2 创建一个 webapp(使用“symfony new web 2.8”从零开始)并且我已经运行了以下代码:

composer require friendsofsymfony/user-bundle "~2.0@dev"

现在,我期待在vendor/ 目录下我会找到“friendsofsymfony/user-bundle”目录,但事实并非如此。该目录不存在,如果我在所有 HD 中搜索它,我可以在 /usr/local/share/friendsofsymfony/ 中找到它。

但显然这不正确,因为如果我运行

composer update

我得到这个错误:

Fatal error: Class 'FOS\UserBundle\FOSUserBundle' not found in /MYPATH/app/AppKernel.php on line 19

那么,为什么我的包不在 vendor/ 目录中?

我该如何解决?

我在 OSX 上。

【问题讨论】:

  • 您是否在与您的 symfony 安装的 composer.json 文件相同的目录中运行了 composer require 命令?

标签: symfony fosuserbundle


【解决方案1】:

真的很奇怪。

尝试在您的 composer.json 中设置供应商目录:

{
    // ...
    "config": {
        "vendor-dir": "vendor"
    }
}

也许这个参数已经在本地或全局设置和错误配置了。

【讨论】:

  • 嗨,我找到了解决方案:在我的 ~/.composer/ 中有一个配置文件,为默认的“供应商”目录设置了 /usr/local/share。我不记得我是什么时候写的,写了什么,但我已经删除了它,现在一切正常。感谢@chalasr 的回复。