Skip to content

tulov/rgk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

rgk Тестовое задание

Тестовый проект по автоматизации рассылки уведомлений в зависимости от событий модели.

Установка

  1. Клонируйте проект в требуемый каталог на сервере

  2. Перейдите в директорию /basic

  3. Выполните composer install

  4. Создайте бд для проекта любым удобным способом

  5. Отредактируйте параметры подключения к БД в файле basic/config/db.php

  6. Выполните yii migrate

Поддержка тестов

Написаны только unit тесты и только для "функциональных" классов. Для оставшейся части писать тесты не целесообразно, ибо цель не оправдывает средства.

  1. Создайте тестовую бд.

  2. Выполните yii migrate для тестовой бд.

  3. Перейдите в директорию basic/test

  4. Выполните php ..\start-codecept.php run unit

Добавление нового события

Событие добавляется через админку. Событие можно добавить только к классу, производному от app\components\MyActiveRecord. Т.е. если мы хотим добавить поддержку события к нашему классу модели, просто наследуем его от app\components\MyActiveRecord.

Для входа в админку:

Емаил: tulov.alex@gmail.com

Пароль: cbvcbv

Значение полей в модели события:

Событие - название события в системе. Например: 'user_registered';

Модель - класс модели, которая будет генерировать событие при определенных условиях;

Базовое событие - (insert, update, delete) событие класса модели, при котором будет генерироваться наше событие. Insert - после вставки новой записи в бд. Update - после обновления записи в БД. Delete - после удаления записи из БД.

Выражение - выражение PHP, которое вычисляется относительно модели. Событие генерируется только если вычисление этого выражения относительно модели возвращает true. Например !is_active. Событие будет генерироваться только при условии что поле модели is_active не задано или равно 0.

Уведомления

Уведомления создаются и администрируются через админку. При создании уведомления присутствуют следующие поля:

Событие - выбор из существующих в системе событий,

Отправитель - выбор из существующих в системе пользователей, от чьего имени будем слать сообщение,

Адресат - состовное поле, где сначала задается режим поля (доступные значения "Все пользователи", "Конкретный пользователь", "Определить по полю модели"). Второе поле активируется при любом режиме, кроме "Все пользователи", и представляет собой выбор из пользователей системы или из полей заданной модели.

Заголовок - заголовок сообщения. Поддерживается множество шаблонов подстановки, которые к тому же добавляются динамически, при добавлении свойств к классу.

Сообщение - сообщение с поддержкой шаблонов замены.

Провайдеры - выбор через что отправляем сообщение.

Важная информация

  1. Настройку роутинга не проводил, т.к. это во многом зависит от сервера, где будет разворачиваться приложение. (Например нужно указать базовую папку)

  2. Пользовательские интерфейсы естественно не "блещут"

  3. Мое резюме доступно по ссылке.

  4. Затраченное время от 16 до 20 часов. В рабочем режиме будет процентов на 25-50 эффективнее. Yii не использовал уже больше года.

About

Тестовое задание

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages