Yii框架浅析
2019獨角獸企業重金招聘Python工程師標準>>>
index.php 中啟動框架的語句:
Yii::createWebApplication($config)->run();其中 Yii 類是繼承自 YiiBase 基類,并且未對基類作任何覆蓋。
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); }
最后運行時的代碼是: $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 可能的繁復不計,實際運行 $this->processRequest(); CApplication 類定義了抽象方法 processRequest,故他的子類必須實現這個方法。見 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);} }
轉載于:https://my.oschina.net/airylinus/blog/61980
總結
- 上一篇: Patient-Rated Wrist
- 下一篇: 肺炎患者能吃红烧羊肉石斛汤吗