Я начал использовать symfony2 и doctrine не так давно. У меня есть два класса (подкласс и родительский класс) с типом наследования JOINED. Соединение вроде работает нормально, но если я запустил doctrine:generate:entities в подклассе Doctrine добавляет к нему все методы и свойства родительского класса. Более того, все они объявлены как private, несмотря на то, что они находятся protected в родительском классе.

Я не хочу добавлять все это в подкласс по нескольким причинам. В основном:

  • Сама doctrine жалуется на эту настройку, говоря, что «защищенные» символы не могут быть повторно объявлены как «частные». Это предотвращает генерацию SQL.
  • Скорее всего, мне придется изменить некоторые из этих методов в родительском классе, и я хочу, чтобы изменения были перенесены в подкласс.

Итак, вопросы:

  1. Это нормально или это из-за моей ошибки?
  2. Как мне остановить доктрину, чтобы это сделать? Я просто не мог снова запустить `doctrine: generate: entity` в этом классе, но я ценю другие вещи, которые он делает.
  3. Это шаблон проектирования, о котором я не знаю? Если это так, мне очень любопытно, для чего это полезно, и я был бы рад узнать о нем больше.

Всем спасибо!

0
Rad80 10 Июн 2013 в 20:22

1 ответ

Лучший ответ

Вы столкнулись с ограничением Doctrine, генератор сущностей не может генерировать сущности с наследованием, так как упоминается в FAQ. Вам придется отредактировать их вручную.

1
K. Norbert 12 Июн 2013 в 13:53