Установка пакета symfony2 (DoctrineCouchDBBundle) - PullRequest
5 голосов
/ 14 июля 2011

Я хочу установить пакет в мой проект 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

В моем файле 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? Вы использовали этот комплект?

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Я изменил цель на


    target= /bundles/Doctrine/Bundle/CouchDBBundle

, поэтому теперь выглядит так


    [DoctrineCouchDBBundle]
      git=http://github.com/doctrine/DoctrineCouchDBBundle.git
      target=/bundles/Doctrine/Bundle/CouchDBBundle

, потому что я заметил, что пространство имен для комплекта couchdb равно


    namespace Doctrine\Bundle\CouchDBBundle;

добавление


    new Doctrine\Bundle\CouchDBBundle\DoctrineCouchDBBundle()

в AppKernel завершится неудачно, если расположение установки не соответствует пространству имен / class_name.

Подробная настройка и конфигурация здесь DoctrineCouchDBBundle Журнал проблем Git Hub

Для тех, кто не знаком с архитектурой пакетирования Symfony 2, вы, вероятно, задаетесь вопросом, какие конфигурационные ключи являются обязательными и доступны для пакетов.Информацию можно получить по адресу:


    bundle_dir/bundle_name/.../configuration.php

1 голос
/ 14 июля 2011

Обновление :

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

...