·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> Yii ExtendedActiveRecord 增强版 ActiveRecord 增加多数据库连接绑定功能

Yii ExtendedActiveRecord 增强版 ActiveRecord 增加多数据库连接绑定功能

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
Yii ExtendedActiveRecord 增强版 ActiveRecord 增加多数据库连接绑定功能

ExtendedActiveRecord 继承自 CActiveRecord,因此基础功能与 CActiveRecord 无异

为添加对多数据库连接的支持,增加了对 connectionName() 方法的回调,用法跟已有的 tableName() 方法一致,返回数据库连接组件名称的字符串。

如果不定义该方法,则使用默认数据库连接(db)

源码如下:

class ExtendedActiveRecord extends CActiveRecord{    public static $db = array();    /**     * @return CDbConnection     * @throws CDbException     */    public function getDbConnection()    {        $componentName = $this->connectionName();        if (isset(self::$db[$componentName])) {            return self::$db[$componentName];        } else {            self::$db[$componentName] = Yii::app()->getComponent($componentName);            if (self::$db[$componentName] instanceof CDbConnection)                return self::$db[$componentName];            else {                $message = 'Active Record keyWord requires a "' . $componentName . '" CDbConnection application component.';                Yii::log($message, CLogger::LEVEL_ERROR, 'extended');                throw new CDbException(Yii::t('yii', $message));            }        }    }    public function connectionName()    {        return 'db';    }}

实例:

class SomeModelClass extends ExtendedActiveRecord{    ......    public function connectionName() {        return 'some-db-connection';    }    ......}