Шаблон advanced, но наверно уже не важно будет с 3 версии.
Есть обычные AR-модели в common, во frontend и backend они практически не заменяются,
практически голые, т.е. как храним в БД так отдаются.
Теперь нужно это все показывать во вью, отдавать json'ом или еще что. Для API наверно будет уместно отдавать как есть +/- мелкие помогайки, а вот для HTML (frontend/backend) как лучше поступать?
1. Прям в модели хранить виды
<?php
echo $post->publicDate(); // <date format="***">23 янв 2019</date>
echo $post->icon(); // <span class="icon icon-hot"></date>
echo $post->shortCardView(); // <artcile>.$title..$descr..$date</artclie>
2. Наследоваться от
\yii\helpers\Html
и юзать что-то вроде
PostHtml
<?php
echo PostHtml::publicDate($post);
echo PostHtml::icon($post);
echo PostHtml::shortCardView($post);
$postHtml = PostHtml::create($post);
echo $postHtml->publicDate();
echo $postHtml->icon();
echo $postHtml->shortCardView();
3. Через создания виджетов:
<?php
echo PostWidget::publicDate($post);
echo PostWidget::icon($post);
echo PostWidget::shortCardView($post);
Понял что кучу вьюх в копи-пастах и не очень хочется в модель отправлять html, но как бы модели принадлежат приложениям (frontend/backend) и может здесь уже не страшно хранить верстку?
Или есть более простой вариант?