Yii2 шардинг

Доброго времени суток.

Начал переносить проект с yii на yii2. И уперся в проблеме горизонтального и вертикального шардинга для моделей AR.

Есть ли номральный вариант для этого?

Хотелось бы переделать конструктор, для передачи числа и в зависимости от этого числа менять коннекшин, но в yii2 метод getdb статический.

Нашел только такое решение на гите "/axiles89/yii2-sharding" но мне оно показалось слишком сложным и не удобным. Есть ли другой способ?

У axiles89 вроде нормальное решение.

Хорошее решение было в yii 1.x.x екстеншин назывался MultiActiveRecord.

Может кому-то пригодится:

В моделе:




    private static $dbname='db';


    public function setDb($db){

        self::$dbname = $db;

        return $this;

    }


    public static function getDb()

    {

        return Yii::$app->get(self::$dbname);

    }



И используем так:




$model = Yii::createObject(Users::className());

$raw = $model->setDb('db1')->findOne(['email'=>'test@test.com']);



Это всего лишь простой пример. От этого уже можно скакать куда угодно.

И как по мне это на много удобнее и проще, чем то что в гите я нашел.

Да, нормально. Стоит сделать метод не статическим в 2.1? Если да, заводите issue.