YII db类的一些个人想法,欢迎pk!

Foyon 发布于 2013/11/14 18:29
阅读 927
收藏 1
Yii

我下午看了下Yii 在处理db连接的时候 确实用了复用,

但是有一定的问题,

new 同一个model,但是db name不一样的时候就有问题,

yii就是搞成两个对象,

如 : $obj1 = new model($db1);

$obj2 = new model($db2);

也就是说 当controller 多次进行 new model()的时候,会多次创建对象,

一般来说不会出现多次new model(),

涉及到跨库操作的时候会出现。

解决办法,静态属性引入。

另外db连接的释放,比较精髓的一点:



        /**                                                                                                                          
        * Close the connection when serializing.                                                                                    
         * @return array                                                                                                             
         */                                                                                                                          
      public function __sleep()                                                                                                        {                                                                                                                            
               $this->close();                                                                                                          
              return array_keys(get_object_vars($this));                               

     }                                                                                                                            
  


加载中
0
qycms_cn
qycms_cn

YII的activeForm  model不是直接new model的,而是用到它静态方法youmodel::model()

你仔细看看这个静态方法,它是通过静态数组,记住之前实例化的对象,有点像getInstance这种单例模式。

0
月影又无痕
月影又无痕
要注意,使用PDO不需要手工显式关闭连接
0
Foyon
Foyon
对象在销毁不用的时候 会自动close()
0
南湖船老大
南湖船老大
精髓个蛋蛋啊,完全没必要的代码
0
首席烤地瓜
首席烤地瓜

瞎搞 先看看源码,一个new model() 中的参数不是db的,是场景

Foyon
Foyon
只是举个例子而已,,。。。
返回顶部
顶部