sorokinmedia / yii2-ar-relations
AR relations for Yii2
Installs: 339
Dependents: 8
Suggesters: 0
Security: 0
Stars: 1
Watchers: 5
Forks: 0
Open Issues: 0
Type:yii2-extension
pkg:composer/sorokinmedia/yii2-ar-relations
Requires
- yiisoft/yii2: >=2.0.30
Requires (Dev)
- phpunit/phpunit: 8.*
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2025-10-04 23:31:20 UTC
README
Sorokin.Media repository
Расширение базового класса \yii\db\ActiveRecord
Позволяет описать метод initClasses и использовать в связях (yii2 relations) автоматическую подстановку нужного класса
Необходимо в проекте использовать трейт, где определить в виде атрибуторв все классы, учавствующие в связях и каждому атрибуту присвоить значение - имя нужного класса
Присвоение классов переменным делать в методе initClasses
Пример файла трейта:
trait RelationClassTrait
{
    public $__userClass;
    
    public function initClasses()
    {
        $this->__userClass = User::class;
    }
    
    /**
     * инициализация связей
     */
    public function init()
    {
        parent::init();
        $this->initClasses();
    }
    /**
     * метод для динамической подстановки нужного класса в связь
     * @param string $field
     * @param string $class
     * @return mixed
     */
    public function setRelationClass(string $field, string $class)
    {
        return $this->{$field} = $class;
    }
}
Необходимо во всех ActiveRecord моделях использовать данный трейт, а также имплементацию интерфейса RelationInterface