【发布时间】:2016-09-05 04:23:29
【问题描述】:
我有三个项目 X、Y 和 Z。
Project X 为 Y 项目做了一些管理功能。项目 Y 的实体写在 AppBudnle 供应商中。现在,我还想在 X 中为项目 Z 做一些管理任务,但是项目 Z 的所有实体都在 src/Company/Z/Entity/...
我通过此自动加载将项目 Z 作为供应商包含在项目 X 中:
"autoload": {
"psr-0": {
"Company\\Z\\": ""
}
},
但是当把它添加到项目 X 中的 AppKernel 时,它会抱怨
PHP Fatal error: Class 'Company\ZBundle\ZBundle' not found in ....
我是否在自动加载中遗漏了什么?
项目 Z 实体目录在 X 项目中如下所示:
/vendor/company/z-bundle/company/ZBundle/src/company/ZBundle/Entity
【问题讨论】:
-
您是否尝试过在 composer.json 中使用“存储库”?你能告诉我们你是如何在 AppKernel 中调用它的吗?
-
嗨 Delphine,在 composer.json 中,我只添加了
company/z" : "dev-master。在AppKernel中,有:new Company\ZBundle\ZBundle() -
文件系统往往区分大小写。 src/公司与公司。 Composer“编译”各种自动加载路径以提高性能。有时查看供应商/作曲家以了解发生了什么会很有帮助。并且不要忘记在对 composer.json 进行更改后运行 composer dumpautoload,以便您的自动加载更改被拾取。
标签: php symfony composer-php vendor