| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | <?phpnamespace common\modules\rbac\components;use Yii;use yii\caching\Cache;use yii\db\Connection;use yii\helpers\ArrayHelper;/** * Configs * Used for configure some value. To set config you can use [[\yii\base\Application::$params]]. *  * ~~~ * return [ *      *     'mdm.admin.configs' => [ *         'db' => 'customDb', *         'menuTable' => 'admin_menu', *     ] * ]; * ~~~ *  * or use [[\Yii::$container]] *  * ~~~ * Yii::$container->set('rbac\components\Configs',[ *     'db' => 'customDb', *     'menuTable' => 'admin_menu', * ]); * ~~~ * * @author Misbahul D Munir <misbahuldmunir@gmail.com> * * @since 1.0 */class Configs extends \yii\base\BaseObject{    /**     * @var Connection Database connection.     */    public $db = 'db';    /**     * @var Cache Cache component.     */    public $cache = 'cache';    /**     * @var int Cache duration. Default to a month.     */    public $cacheDuration = 2592000;    /**     * @var string Menu table name.     */    public $menuTable = '{{%menu}}';    /**     * @var self Instance of self     */    private static $_instance;    /**     * {@inheritdoc}     */    public function init()    {        if ($this->db !== null && !($this->db instanceof Connection)) {            if (is_string($this->db) && strpos($this->db, '\\') === false) {                $this->db = Yii::$app->get($this->db, false);            } else {                $this->db = Yii::createObject($this->db);            }        }        if ($this->cache !== null && !($this->cache instanceof Cache)) {            if (is_string($this->cache) && strpos($this->cache, '\\') === false) {                $this->cache = Yii::$app->get($this->cache, false);            } else {                $this->cache = Yii::createObject($this->cache);            }        }        parent::init();    }    /**     * Create instance of self.     *     * @return static     */    public static function instance()    {        if (self::$_instance === null) {            $type = ArrayHelper::getValue(Yii::$app->params, 'mdm.admin.configs', []);            if (is_array($type) && !isset($type['class'])) {                $type['class'] = static::className();            }            return self::$_instance = Yii::createObject($type);        }        return self::$_instance;    }}
 |