Как организовать удобное хранение текстов для уведомлений в Yii2?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
MarkL
Сообщения: 31
Зарегистрирован: 2017.07.05, 20:37

Как организовать удобное хранение текстов для уведомлений в Yii2?

Сообщение MarkL » 2020.01.12, 11:38

Ситуация: на сервисе есть система уведомлений, её цель схожа с Майлером - уведомление пользователей о чём-либо, но внутри сервиса. Yii2 Advanced.
Проблема: если размещать текст в коде - это его "загромождает" и делает трудным для чтения, особенно после использования ещё и функции интернационализации. Да и, собственно, обширному тексту там нечего делать.

Код: Выделить всё

$this->noticeService->add(
            $event->ticket->user_id,
            "Ответ в тикете: " . $event->ticket->subject,
            "Вам поступил ответ от поддержке в тикете: " . Html::a($event->ticket->subject, $link),
            'life-ring',
            'info'
        );
        
Вопрос: есть ли какой-либо функционал фреймворка, чтобы разместить тексты в папке, аля @common\notification, как в письмах с Mailer'ом?

yiiliveext
Сообщения: 867
Зарегистрирован: 2019.08.13, 01:49

Re: Как организовать удобное хранение текстов для уведомлений в Yii2?

Сообщение yiiliveext » 2020.01.12, 12:14

MarkL писал(а):
2020.01.12, 11:38
Вопрос: есть ли какой-либо функционал фреймворка, чтобы разместить тексты в папке, аля @common\notification, как в письмах с Mailer'ом?
Да, этот функционал называется Представления(View).

MarkL
Сообщения: 31
Зарегистрирован: 2017.07.05, 20:37

Re: Как организовать удобное хранение текстов для уведомлений в Yii2?

Сообщение MarkL » 2020.01.12, 12:41

yiiliveext писал(а):
2020.01.12, 12:14
MarkL писал(а):
2020.01.12, 11:38
Вопрос: есть ли какой-либо функционал фреймворка, чтобы разместить тексты в папке, аля @common\notification, как в письмах с Mailer'ом?
Да, этот функционал называется Представления(View).
Окей. Выходит мне нужно помещать текст в представления, а далее подтягивать его по ключу, допустим?
Но чтобы получить функционал рендеринга нужно ...? Переместить функционал подтягивания представлений уведомления в виджете Yii2?

yiiliveext
Сообщения: 867
Зарегистрирован: 2019.08.13, 01:49

Re: Как организовать удобное хранение текстов для уведомлений в Yii2?

Сообщение yiiliveext » 2020.01.12, 13:43

MarkL писал(а):
2020.01.12, 12:41
Окей. Выходит мне нужно помещать текст в представления, а далее подтягивать его по ключу, допустим?
Но чтобы получить функционал рендеринга нужно ...? Переместить функционал подтягивания представлений уведомления в виджете Yii2?

Код: Выделить всё

//file @common/notification/ticket.php
Ответ в тикете:  <?= $subject?>
Вам поступил ответ от поддержке в тикете:  <?= \yii\helpers\Html::a($subject, $link)?>

Код: Выделить всё

// NoticeService class file
public function add($userId, $template, $templateParams, $someParam1, $someParam2)
{
    $view = new \yii\web\View();
    $content = $view->render('@common/notification/' . $template, $templateParams);
//... another logic
}

Код: Выделить всё

$this->noticeService->add(
            $event->ticket->user_id,
            'template' => 'ticket',
            'templateParams' => ['subject' => $event->ticket->subject, 'link' => $link],           
            'life-ring',
            'info'
        );

MarkL
Сообщения: 31
Зарегистрирован: 2017.07.05, 20:37

Re: Как организовать удобное хранение текстов для уведомлений в Yii2?

Сообщение MarkL » 2020.01.12, 15:22

yiiliveext, благодарю, это похоже именно то, что нужно.

Ответить