Базово Yii2 из коробки предлагает нам архитектуру приложения по шаблону MVC (модель, представление, контроллер). Для более сложного приложения прибегаем к чистой архитектуре и в рамках неё необходимо отказаться от Active Record в шаблонах (представлениях), т.к. Active Record это часть слоя по работе с базой данных, о которой другим слоям знать не нужно. Предполагаем, что мы хотим продолжить использовать встроенные виджеты по отображению данных в представлениях: DeatilView
, ListView
и GridView
. Последние два используют ActiveDataProvider
, который в себе содержит Active Record модели - цель данной статьи избавиться от них и использовать только DTO.
Виджеты данных Yii2 и DTO
7 мин