2014-03-05 26 views
0

我想让供应商目录对于多个项目是通用的。所以我搬了它,并相应地更新我的app/autoload.php($loader = require __DIR__.'/../../../vendor/autoload.php')Symfony 2.3 - 在移动供应商目录自动加载后MyBundle坏了

它在某种程度上工作 - 看来Symfony能够找到它的方式供应商目录,但在某种程度上自动加载我的捆绑被打破。我得到这个:

FatalErrorException: Error: Class 'My\FooBundle\MyFooBundle' not found in (...)\Symfony\app\AppKernel.php line 19

我应该如何解决这个问题?我应该以某种方式将我的软件包的目录添加到app/autoload.php? 据我所知,作曲家负责自动加载供应商目录中的任何东西,但不是我的包,所以我想这与composer.json混淆没有意义,对吧?

+0

不要这样做。作曲家autoload.php用classmaps和东西加载其他文件。作曲家是基于项目的,不能在全球范围内使用。 –

回答

0

您应该检查vendor/composer/autoload_namespace.php文件。 $vendorDir应该保持不变,但$baseDir肯定需要更改。

0

确保composer.json中的行“psr-0”指向正确的路径。在你的情况下,我想它应该是YourBundleFolder/src。通常它只是src,因为src与composer.json的电平相同。现在你已经移动了供应商文件夹,我想你也移动了composer.json。这就是为什么它找不到你的包。