2015-11-01 6 views
0

У меня есть несколько объектов (Doctrine 2), которые имеют похожие поля, например foo, value и datetime. Я хотел бы воспользоваться этим и определить пользовательский FooEntityRepository с общими методами.Как абстрагироваться от доменов Doctrine 2?

Обычай EntityRepository легко создается, но как один заставить объект с использованием этого хранилища, чтобы иметь foo, value, datetime поля? Возможно, одно из объектов хранит то же значение не в foo, а bar. Я хочу ожидать этого.

Я мог бы определить интерфейс с getFooFieldName, getValueFieldName, что объекты, о которых идет речь, должны реализоваться, но это путь? Должен ли я в этом случае допустить, чтобы репозиторий «оценил», если функции возвращают действительные имена полей?

ответ

0

Возможно, вы можете определить пользовательский EntityRepository и затем расширить его с помощью специализированных репозиториев объектов для каждого дочернего объекта абстрактного объекта. Затем все общие методы будут доступны для всех объектов.

+0

Благодарим за отзыв. В этом случае проблема заключается в том, что EntityRepository больше не является общим. Такие методы, как 'getFooFieldName' в репозитории, все же должны быть проверены временем выполнения. Кроме того, я создаю высокую связь между Entity и Repository, что я не думаю, что это выгодно. – user228395

Смежные вопросы