2017 © Pedro Peláez
 

yii2-extension yii2-rules

image

pantera-digital/yii2-rules

  • Wednesday, July 11, 2018
  • by Singletonn
  • Repository
  • 1 Watchers
  • 1 Stars
  • 59 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 4 Open issues
  • 1 Versions
  • 28 % Grown

The README.md

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();

The Versions