Тестовый проект по автоматизации рассылки уведомлений в зависимости от событий модели.
-
Клонируйте проект в требуемый каталог на сервере
-
Перейдите в директорию /basic
-
Выполните
composer install -
Создайте бд для проекта любым удобным способом
-
Отредактируйте параметры подключения к БД в файле basic/config/db.php
-
Выполните
yii migrate
Написаны только unit тесты и только для "функциональных" классов. Для оставшейся части писать тесты не целесообразно, ибо цель не оправдывает средства.
-
Создайте тестовую бд.
-
Выполните
yii migrateдля тестовой бд. -
Перейдите в директорию basic/test
-
Выполните
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.
Уведомления создаются и администрируются через админку. При создании уведомления присутствуют следующие поля:
Событие - выбор из существующих в системе событий,
Отправитель - выбор из существующих в системе пользователей, от чьего имени будем слать сообщение,
Адресат - состовное поле, где сначала задается режим поля (доступные значения "Все пользователи", "Конкретный пользователь", "Определить по полю модели"). Второе поле активируется при любом режиме, кроме "Все пользователи", и представляет собой выбор из пользователей системы или из полей заданной модели.
Заголовок - заголовок сообщения. Поддерживается множество шаблонов подстановки, которые к тому же добавляются динамически, при добавлении свойств к классу.
Сообщение - сообщение с поддержкой шаблонов замены.
Провайдеры - выбор через что отправляем сообщение.
-
Настройку роутинга не проводил, т.к. это во многом зависит от сервера, где будет разворачиваться приложение. (Например нужно указать базовую папку)
-
Пользовательские интерфейсы естественно не "блещут"
-
Мое резюме доступно по ссылке.
-
Затраченное время от 16 до 20 часов. В рабочем режиме будет процентов на 25-50 эффективнее. Yii не использовал уже больше года.