他在接受请求以后开始在处理请求以后,这里从route解析以后说起:
看下framework/base下面有个CApplication的类,看它的构造函数,有一个
$this->preloadComponents()
这个就是开始加载你在config里面配置的components了!
protected function preloadComponents()
{
foreach($this->preload as $id)
$this->getComponent($id)
}
这个函数会一个一个获得它的components
public function getComponent($id,$createIfNull=true)(在CModel下面)
这个函数初始化组件类(同时会把配置文件里面配置的参数一个一个传递给组件类,你可以看下YiiBase.php的public static function createComponent($config)函数,比较详细),获得实例化类以后会调用里面的init方法!
$component=Yii::createComponent($config)
$component->init()
Db组件的省却类就是DBConnection,所以会实例化这个类并调用它的init方法!
在init方法里面有$this->setActive(true)
调用了连接调用了open打开链接的方法了!
open方法就是一个php的pdo链接了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)