我希望将软件包安装到我的symfony项目中。但是,我遇到了一些问题。请接受我的无知,如果答案是微不足道的,但我已经尝试寻找解决方案,但唉,我什么也没找到。
在我的 deps 文件中,我有:
[doctrine-couchdb]
git=http://github.com/doctrine/couchdb-odm.git
[DoctrineCouchDBBundle]
git=http://github.com/doctrine/DoctrineCouchDBBundle.git
target=/bundles/Symfony/Bundle/DoctrineCouchDBBundle
我运行 bin / vendors install 命令
在 autoload.php 文件中,我有:
'Doctrine\\ODM\\CouchDB'=> __DIR__.'/../vendor/doctrine-couchdb/lib',
我已经注册了这个包:
new Doctrine\Bundle\CouchDBBundle\DoctrineCouchDBBundle()
当我运行php app / console时出现错误:
Fatal error: Class 'Doctrine\Bundle\CouchDBBundle\DoctrineCouchDBBundle' not found in /var/www/symfony2.test/app/AppKernel.php on line 22
我注意到对于MongoDB ODM,你有:
[doctrine-mongodb]
git=http://github.com/doctrine/mongodb.git
有没有doctrine-couchdb回购?你用过这个捆绑包吗?
答案 0 :(得分:1)
更新:
1。)检查您是否已安装并自动加载Doctrine\CouchDB
2。)在你的git安装中
target=/bundles/Symfony/Bundle/DoctrineCouchDBBundle
应该是
target=/bundles/Doctrine/Bundle/DoctrineCouchDBBundle
(注意Symfony => Doctrine)
3.)然后改变
'Doctrine' => __DIR__.'/../vendor/doctrine/lib',
到
'Doctrine' => array(__DIR__.'/../vendor/doctrine/lib', __DIR__.'/../vendor/bundles'),
脱离我的头脑,我会假设这些事情:
1。)缓存
2。)'Doctrine\\ODM\\CouchDB'=> __DIR__.'/../vendor/doctrine-couchdb/lib',
应该高于任何更高级别的命名空间('Doctrine','Doctrine \ Common')
所以看起来应该是这样的:
'Doctrine\\ODM\\CouchDB'=> __DIR__.'/../vendor/doctrine-couchdb/lib',
'Doctrine\\DBAL' => __DIR__.'/../vendor/doctrine-dbal/lib',
'Doctrine' => __DIR__.'/../vendor/doctrine/lib',
3.。)config.yml中缺少一些配置
答案 1 :(得分:1)
我将目标更改为
target= /bundles/Doctrine/Bundle/CouchDBBundle
所以现在看起来像这样
[DoctrineCouchDBBundle] git=http://github.com/doctrine/DoctrineCouchDBBundle.git target=/bundles/Doctrine/Bundle/CouchDBBundle
因为我注意到couchdb bundle的名称空间是
namespace Doctrine\Bundle\CouchDBBundle;
因此添加
new Doctrine\Bundle\CouchDBBundle\DoctrineCouchDBBundle()如果安装位置与namespace / class_name不匹配,则
到AppKernel将失败。
此处详细设置和配置DoctrineCouchDBBundle Git Hub Issue Log
对于那些不熟悉Symfony 2捆绑体系结构的人,您可能想知道哪些配置密钥是必需的并且可用于捆绑包。信息可以从以下网址获得:
bundle_dir/bundle_name/.../configuration.php