ORM (Object Relational Mapper) используется для генерации файлов модели.Файлы моделей используются для связи между приложением и базой данных (моделью).Похоже, вы разбираетесь в процессах ORM, но вы можете быстро перефразировать (используя доктрину в качестве примера) для тех, кто может не быть, и я могу стать счастливчиком и ответить на ваш вопрос.
Вы используетеORM для анализа вашей схемы базы данных, которая генерирует файл схемы.Теперь с помощью этого файла схемы вы можете изменить его в соответствии с потребностями своего приложения.Например, вы можете добавить actAs: { Timestampable ~}
или actAs: NestedSet: hasManyRoots: true
.Кроме того, вы захотите использовать этот файл схемы для настройки того, как должны вести себя отношения между объектами (например, 1: M, M: M с использованием refClass
и т. Д.)
Как только ваш файл схемы готовчтобы пойти, вы даете команду для генерации файлов модели.Файлы моделей - это классы, которые вы можете использовать в своем приложении для получения доступа к базе данных.Таким образом, контроллер на самом деле обменивается данными с моделью (вашей базой данных) через файлы, сгенерированные ORM.
Приведенный вами пример является хорошим, так как вы можете разгрузить большую часть бизнес-логики из ваших действий.(контроллер страницы) и в вашу модель.Таким образом, к той же логике можно получить доступ из других кодов без необходимости иметь дело с какой-либо логикой уровня контроллера.То, что доктрина делает (и делает propel тоже), позволяет вам создавать классы «Table» (или «Peer»).Эти классы действуют как контейнеры для работы с несколькими объектами.Именно в этих классах вы должны добавить свою бизнес-логику, как вы продемонстрировали во втором примере.
Конечная цель - максимально упростить ваши действия, просто обрабатывая параметры запроса и обработку формы, а затем передавая значенияк вашей модели через «Таблица» или пользовательские классы, которые вы разрабатываетеСледуя этой парадигме, вы можете получить многофункциональное приложение с урезанными действиями и централизованной бизнес-логикой.
Редактировать ---
Извините, я пропустил ваш последний вопрос относительно вашего разрешения API.Из того, что вы опубликовали, похоже, что он следует парадигме MVC в том, что у вас есть объект разрешения и вы используете его как API между контроллером и базой данных.