Joomla源代碼解析(二十) MVC組件的執行

以前的文章中,我們曾經說過 $mainframework->dispatch 是如何最終調用組件的,通過這個dispatch,最終 include 相應組件目錄下的 組件名稱.php 文件,現在我們來看看,這個文件是怎麼按部就班的聯繫了MVC模式相關的各個文件。

require_once (JPATH_COMPONENT.DS.'controller.php');

// Require specific controller if requested
if($controller = JRequest::getVar('controller')) {
 require_once (JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php');
}

// Create the controller
$classname = 'HelloController'.$controller;
$controller = new $classname( );

// Perform the Request task
$controller->execute( JRequest::getVar('task'));

// Redirect if set by the controller
$controller->redirect();

 其實就是根據request提交的controller參數,創建相應的JController對象,然後由controoler對象執行相應的任務。

這樣我們就完全理解了,一個組件是如何被調用,MVC組件是如何執行,並最後返回html代碼的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章