You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Абстрактный класс имеющий базовые методы get getIn create edit delete
Методы get, getIn, create, edit, имеют параметры:
- array|object|doctrineEntityObject $params массив, либо объект со свойствами являющимися фильтрами для поиска|параметрами для создания|изменения (doctrineEntityObject - сущности для работы с базой данных создаваемые doctrine)
- string $returnType тип возвращаемого объекта, по умолчанию возвращает entityName объект
для создания объекта со связью ManyToMany можно передать массив id связываемой сущности, либо массив сущностей, так же можно для создания|изменения сущности передать id объекта в связях OneToOne|ManyToOne|OneToMany
При наслоедованнии от абстрактного класса Service необходимо объявить конструктор класса, который имеет следующие параметры:
- EntityManagerInterface $em
- LoggerInterface $logger
- string $entityName - класс entity сервисом которого является данный класс (этот параметр необходимо переопределить в конструкторе класса)
- array|null $uniqueParams - массив имен параметров которые являются уникальными, чья уникальность будет проверяться при использовании методов create и edit (возвращает ошибку ValidationUniqueException), (этот параметр необходимо переопределить в конструкторе класса)
ObjectSerializer
Сериализатор использующий в своей основе jsm serializer, фиксит такие проблемы его как:
Невозможность десериализовать объект с неинициализированными свойствами
Имеет гибкую модель установки null значения в результат выполнения методов
Так же имеет метод обновления одного объекта из другого не конвертируя в массив и обратно (полезно для сущностей Doctrine)