2012-04-18 1 views
10

Я пытаюсь сгенерировать объекты для моего приложения Symfony 2. Сущности будут разделяться несколькими пакетами (и, возможно, несколькими приложениями), и поэтому я не хочу, чтобы они принадлежали к набору. Я хочу, чтобы они были в папке src/MyApp/Entity.Symfony2/Doctrine2: Генерировать объекты, находящиеся за пределами пакета

У меня уже есть YML для моих сущностей, хранящихся в SRC/MyApp/Entity/Config/доктрине (class1.orm.yml, ...)

Я пытаюсь генерировать corresonding PHP классов с использованием доктрина: генерировать: сущности задача

Вот что я имею в моем приложении/Config/config.yml

orm: 
    auto_generate_proxy_classes: %kernel.debug% 
    auto_mapping: false 
    mappings: 
     AppRest: 
     type: yml 
     prefix: AppRest\Entity 
     dir: %kernel.root_dir%/../src/AppRest/Entity/config/doctrine 

Вот команда, я использую для создания объектов

php app/console doctrine:generate:entities AppRest/Entity 
-

Вот исключение я получаю

[InvalidArgumentException] 
Bundle "AppRest" does not exist or it is not enabled. 

Я хочу сделать учение понять, что я не пытаюсь генерировать лицо тх в пучке. Я также попытался указать параметр -path (-path = src/AppRest/Entity), но ничего не изменил.

Может ли кто-нибудь помочь?

Edit:

Я снял дополнительное пространство в моей директории, которая решала эту проблему. Вариант пути должен быть указан

+1

Я не думаю, что вы будете иметь много удачи с получением S2 для создания и использования D2 за пределами пакета. Просто поставьте их в свой собственный пакет и сделайте с ним. Легко обмениваться сущностями через несколько пакетов. – Cerad

+0

+1 Использование Sf2 в сочетании с Doctrine2 заставляет вас принять реализацию Doctrine с помощью Sf2 ... – AlterPHP

ответ

3

На самом деле, мне просто не хватало места в моей опциональной опции выше. Это работает сейчас, но мне все еще интересно, лучший ли это путь.

+3

Задача объединения состоит в том, чтобы интегрировать ваш PHP-код с Symfony. Чем больше кода вы перемещаете за пределами пакета, тем меньше зависит от Symfony. –

+0

Пакет - лучший способ пойти. Попытайтесь создать несколько запросов, прежде чем зайти слишком далеко. Вы можете столкнуться с некоторыми проблемами. – Cerad

+1

Да, мы переоценили это, и мы выбрали реализацию с CoreBundle, которая содержит наши сущности и специализированные пакеты, которые относятся к этому CoreBundle – David

-1

Если у вас есть такая ошибка, проверьте, указано ли имя ярлыка пакета, а не имя каталога пакета. Например, если у вас есть Acme \ DemoBundle, это будет AcmeDemoBundle. В этом случае

orm: 
    mappings: 
     DemoBundle: 
      .... 

НЕПРАВИЛЬНО.

правильным является:

orm: 
    mappings: 
     AcmeDemoBundle: 
      ....