chiliec/yii2-vote

View on GitHub
components/VoteBootstrap.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * @link https://github.com/Chiliec/yii2-vote
 * @author Vladimir Babin <vovababin@gmail.com>
 * @license http://opensource.org/licenses/BSD-3-Clause
 */

namespace chiliec\vote\components;

use Yii;
use yii\base\BootstrapInterface;
use yii\base\Event;
use chiliec\vote\behaviors\RatingBehavior;
use chiliec\vote\models\Rating;
 
class VoteBootstrap implements BootstrapInterface
{
    /**
     * Bootstrap method to be called during application bootstrap stage.
     * @param Application $app the application currently running
     */
    public function bootstrap($app)
    {
        $models = Yii::$app->getModule('vote')->models;
        foreach ($models as $value) {
            $modelId = Rating::getModelIdByName($value);
            $modelName = Rating::getModelNameById($modelId);
            Event::on($modelName::className(), $modelName::EVENT_INIT, function ($event) {
                if (null === $event->sender->getBehavior('rating')) {
                    $event->sender->attachBehavior('rating', [
                        'class' => RatingBehavior::className(),
                    ]);
                }
            });
        }
    }
}