Я начал использовать symfony2 и doctrine не так давно. У меня есть два класса (подкласс и родительский класс) с типом наследования JOINED. Соединение вроде работает нормально, но если я запустил doctrine:generate:entities
в подклассе Doctrine добавляет к нему все методы и свойства родительского класса. Более того, все они объявлены как private
, несмотря на то, что они находятся protected
в родительском классе.
Я не хочу добавлять все это в подкласс по нескольким причинам. В основном:
- Сама doctrine жалуется на эту настройку, говоря, что «защищенные» символы не могут быть повторно объявлены как «частные». Это предотвращает генерацию SQL.
- Скорее всего, мне придется изменить некоторые из этих методов в родительском классе, и я хочу, чтобы изменения были перенесены в подкласс.
Итак, вопросы:
- Это нормально или это из-за моей ошибки?
- Как мне остановить доктрину, чтобы это сделать? Я просто не мог снова запустить `doctrine: generate: entity` в этом классе, но я ценю другие вещи, которые он делает.
- Это шаблон проектирования, о котором я не знаю? Если это так, мне очень любопытно, для чего это полезно, и я был бы рад узнать о нем больше.
Всем спасибо!
1 ответ
Вы столкнулись с ограничением Doctrine, генератор сущностей не может генерировать сущности с наследованием, так как упоминается в FAQ. Вам придется отредактировать их вручную.
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.