Подкласс Доктрина 2 сущность

Я пытаюсь создать подкласс сущности Doctrine 2, чтобы добавить несколько «вспомогательных» функций, которые я хотел бы использовать.

Например, это моя сущность:

namespace Project\Entity;
class Product
{
private $name;
private $idProductCategory;
}

Сопоставление осуществляется с помощью файлов XML.

Затем я пытаюсь расширить его:

namespace Project\Entity;
class ProductJSON extends Product {
public function toJSON() {
/* ... */
}
}

Когда я пытаюсь использовать этот объект в Doctrine:

$a = $entityManager->getRepository('\Project\Entity\ProductJSON');

Я получаюНе найден файл сопоставления с именем Project.Entity.ProductJSON.dcm.xml» ошибка.
Что совершенно верно, потому что я не хочу никаких дополнительных карт.

Я внимательно прочитал документы Доктрины и о сопоставленных суперклассах (Доктрина: расширение класса сущностей), но, насколько я понимаю, это для расширения сущностей в смысле БД.

Я не забочусь о базе данных / отображении, я просто хочу расширить сущности в PHP, чтобы использовать объекты без проблем в моем приложении.

Как достичь этой цели?

0

Решение

Вам не нужен подкласс для добавления дополнительных методов. Просто добавьте методы к вашему классу сущности — Doctrine просто проигнорирует их, потому что к ним не прикреплена информация о сопоставлении.

Например.

class Product
{
private $name;
private $idProductCategory;

/* ... */

public function toJSON() {
/* ... */
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]