yii2-rules
Rules module for Yii Framework 2.x gives ability to create and manage reactions for events, (*1)
Установка
Предпочтительно через composer:, (*2)
composer require pantera-digital/yii2-rules "@dev"
Или добавьте в composer.json, (*3)
"pantera-digital/yii2-rules": "@dev"
и выполните:, (*4)
composer update
Миграции
php yii migrate/up --migrationPath=@pantera/rules/migrations
Подключение
Добавить в frontend/config/main.php
, (*5)
...
'bootstrap' => ['rules']
...
'modules' => [
'rules' => [
'class' => 'pantera\rules\Module',
'classes' => [
namespace\to\YourClassName::className() => [
namespace\to\YourClassName::YOUR_CLASS1_EVENT_KEY_1,
namespace\to\YourClassName::YOUR_CLASS1_EVENT_KEY_2,
...
],
namespace\to\YourClassName2::className() => [
namespace\to\YourClassName2::YOUR_CLASS2_EVENT_KEY_1,
namespace\to\YourClassName2::YOUR_CLASS2_EVENT_KEY_2,
...
],
],
],
]
...
Добавить в backend/config/main.php
, (*6)
...
'modules' => [
'rules' => [
'class' => 'pantera\rules\admin\Module',
'permissions' => ['admin'],
],
]
...
Использование
В бекенде управление осуществляется по адресу index.php?r=rules/rules. Необходимо добавить требуемые вам rule и в них задать actions на события., (*7)
В коде action доступны переменные:, (*8)
$model
- объект который сгенерировал событие;, (*9)
$user
- текущий пользователь системы, при котором событие сгенерировано., (*10)
Пример action, который отправляет уведомление на email администратора при запросе обратного звонка от пользователя на сайте (событие сохранения в БД запроса на обратный звонок):, (*11)
common\models\CallMe::EVENT_AFTER_INSERT
Yii::$app->mailer->compose('call-me', ['model' => $model])
->setFrom('your_mail@domain.com')
->setTo(Yii::$app->params['managerEmail'])
->setSubject('Запрос звонка на сайте')
->send();