Я создал небольшой проект, где я прохожу данные из моих контроллеров класса обслуживания, который использует ОРМ, чтобы, например, сохранить объект:Использование хранилища шаблона с ОРМОМ
Что-то вроде этого: UserController
получает пост и передает его на номер UserService
. UserService
создает объект пользователя и сохраняет его в базу данных с $user.save();
Сейчас я борюсь с двумя вещами:
Первое: Скажем, я использую хранилище для добавления пользователя, он будет следующим образом: Контроллер передает данные сообщения службе, которая создает объект пользователя и передает его в репозиторий. Единственное, что нужно сделать репозиторию, это позвонить $user.save()
, разве это не так странно? Почему бы не вызвать сохранение в моем сервисе, потому что использование репозитория просто для вызова метода сохранения кажется мне излишним.
Второе: Я прочитал, что при использовании репозиториев, вы можете легко изменить методы хранения, потому что приложение не знает, какой из них используется. Но прежде чем передавать объект в ваш репозиторий, вы должны его создать. Использование ORM, каждый из них имеет другой способ: Doctrine использует $user = new User
, в то время как Propel использует $user = new User()
, idiorm использует $user = ORM::for_table('user')->create();
. Поэтому, когда переключение на другой ORM по какой-то причине связано с изменением этого в вашем проекте, нет?