• 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';
        }
    
        ......
    }
    

      

    作者: oShine.Q
    出处:http://www.cnblogs.com/oshine/
    作品oShine.Q 创作, 欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问,请给我留言。
  • 相关阅读:
    SharePoint和Reporting Services整合 样式问题
    SharePoint2010安装体验(二)
    Moss 文件夹审批
    Moss中的控件—PeoplePicker
    C# 温故而知新:Stream篇(—)
    Entity Framework框架Code First Fluent API
    C# 温故而知新:Stream篇(二)
    扩展RBAC用户角色权限设计方案
    常见C#面试试题
    Spring Cloud之Ribbon负载均衡(Spring Cloud 2020.0.3版)
  • 原文地址:https://www.cnblogs.com/oshine/p/3884941.html
Copyright © 2020-2023  润新知