Afinogen / yii2-events

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Описание

Система уведомлений с шаблонизацией сообщений

Установка

  • Провести установку проекта YII2 (см README_YII2.md)
  • Выполнить миграции
php yii migrate
  • Добавить роли
php yii rbac/init

Добавление новой модели с событием

  • Содаем константу с именем события
const EVENT_NEW_ARTICLE = 'new_article';
  • В функции модели init присоединяем обработчик события, он един для всех. Внутри обработчика уже происходит распознавание отправителя и создание сообщений для пользователей
$this->on(self::EVENT_NEW_ARTICLE, ['app\components\HandlerEvents', 'newEvent']);
  • Создаем функцию getTemplateVariables. Она генериует имена переменных с заполнением из модели
public function getTemplateVariables()
{
    $variables = [];
    $className = strtolower((new \ReflectionClass($this))->getShortName());

    foreach ($this as $key => $val) {
        $variables['{'.$className.'_'.$key.'}'] = $val;
    }

    $variables['{'.$className.'_link}'] = Html::a('Читать далее', ['/article/view', 'id' => $this->id]);

    return $variables;
}
  • Через админку добавить код события в бд

Добавление нового обработчика событий

  • Создать свой класс от BasicEvent
  • В функцию newEvent класса HandlerEvents добавить новое условие с вызовом обработчика
  • Через админку добавить тип события в бд

Затраченное время

В днях ушло - 3, но я не все время посвещал данной работе.

About

License:Other


Languages

Language:PHP 97.6%Language:CSS 1.1%Language:Batchfile 0.9%Language:JavaScript 0.4%