@ikudryash
Full-stack разработчик

Есть ли в laravel обычная модель, не Eloquent ORM?

Например, мне нужна модель для обработки данных с валидацией и прочими плюшками, но она не должна быть связана с бд. Пример из YII2: ActiveRecord и просто Model. Есть ли аналогия какая-либо в Laravel ?
  • Вопрос задан
  • 544 просмотра
Решения вопроса 1
SerafimArts
@SerafimArts
Senior Notepad Reader
ikudryash:
1) Модель (везде) - это просто прикладной уровень доменного объекта (т.е. некоторый объект, отображающий предметную область). Она ни от чего не зависит и ничего не требует (в т.ч. наследования).
2) AR-модели (ну или любые другие анемичные модели) никогда и не при каких условиях не должны содержать валидацию бизнес-процессов. Эта зона ответсвенности DbC инвариантов. Если это не нравится - обычной практикой считается DTO. В случае Laravel - вам всё упростили и запили на блюдечке FormRequest'ы, которые автоматом валидируются при резолве из контейнера (т.е. при инжектах).
3) Валидация бизнес-логики должна всегда находиться на уровень выше, т.к. правила создания сущностей привязаны к непосредственной области действия (в том числе прав пользователя и прочего, т.е. зависит от задачи) и может быть разной в разных местах.
4) Для использования внешних сервисов в Laravel есть контейнер, который реализует автовайринг и двойную диспатчеризацию, в отличие от Yii, где подобного нет и фрейм нашпигован скрытыми зависимостями.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
Это обычный класс. Есть ли в РНР классы? Опять же, для обработки конкретно форм есть FormRequest'ы, для валидации всего прочего есть просто валидатор.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы