【发布时间】:2015-07-12 01:32:09
【问题描述】:
我现在正在处理 2 个应用程序。第一个是CMS,第二个是商店。我想将我的供应商提升一级并在项目之间共享。
所以我的结构会是这样的:
project1/
project2/
shared_vendor/
我读到了这个。
我已将app/autoload.php loader 变量从:
$loader = require __DIR__.'/../vendor/autoload.php';
到:
$loader = require __DIR__.'/../../vendor/autoload.php';
而且我的composer.json 中的vendor-dir 也从:
"config": {
"bin-dir": "bin",
"vendor-dir": "vendor"
},
到:
"config": {
"bin-dir": "bin",
"vendor-dir": "/../vendor"
},
在此之后我收到此错误:
ClassNotFoundException in AppKernel.php line 20: Attempted to load
class "CmsUserBundle" from namespace "Cms\UserBundle".
Did you forget a "use" statement for another namespace?
我做错了什么?我忘了改变什么吗? 提前致谢。
【问题讨论】:
-
CmsUserBundle 是否存在于
project_1/src/或shared_vendor/中? -
您缺少手动编辑加载项目命名空间的作曲家自动加载配置。
-
您为什么要这样做?拥有两个使用相同供应商的独立系统意味着您必须将两个包依赖项保持在相同的版本。
-
@WouterJ 是的,CmsUserBundle 在 project1/src 中。
-
@code-jaff,我应该在作曲家中准确地改变什么?
标签: php symfony composer-php autoload vendor