Задать вопрос
@ikudryash
Full-stack разработчик

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

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

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

Похожие вопросы