當(dāng)前位置:
首頁 >
Yii框架浅析
發(fā)布時(shí)間:2025/5/22
16
豆豆
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
index.php 中啟動(dòng)框架的語句:
Yii::createWebApplication($config)->run();其中 Yii 類是繼承自 YiiBase 基類,并且未對(duì)基類作任何覆蓋。
framework/YiiBase.php ?line 98
public static function createWebApplication($config=null) {return self::createApplication('CWebApplication',$config); }同上文件 :line 125 public static function createApplication($class,$config=null) {return new $class($config); }
最后運(yùn)行時(shí)的代碼是: $obj = new CWebApplication($config); $obj->run();
framework/web/CWebApplication.php 此類中并無 run()方法,找基類 CApplication
framework/web/CApplication.php ?line 158
public function run() {if($this->hasEventHandler('onBeginRequest'))$this->onBeginRequest(new CEvent($this));$this->processRequest();if($this->hasEventHandler('onEndRequest'))$this->onEndRequest(new CEvent($this)); }略過 $config 可能的繁復(fù)不計(jì),實(shí)際運(yùn)行 $this->processRequest(); CApplication 類定義了抽象方法 processRequest,故他的子類必須實(shí)現(xiàn)這個(gè)方法。見 CWebApplication line 125 public function processRequest() {if(is_array($this->catchAllRequest) && isset($this->catchAllRequest[0])){$route=$this->catchAllRequest[0];foreach(array_splice($this->catchAllRequest,1) as $name=>$value) {$_GET[$name]=$value;}} else {$route=$this->getUrlManager()->parseUrl($this->getRequest());$this->runController($route);} }
轉(zhuǎn)載于:https://my.oschina.net/airylinus/blog/61980
總結(jié)
- 上一篇: Patient-Rated Wrist
- 下一篇: 肺炎患者能吃红烧羊肉石斛汤吗