国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

OpenCart框架運行流程介紹

2019-11-15 01:34:41
字體:
來源:轉載
供稿:網友
OpenCart框架運行流程介紹

框架運行流程介紹

這樣的一個get請求http://hostname/index.php?route=common/home 發生了什么?

1. 開始執行入口文件index.php。

2.require_once(DIR_SYSTEM . 'startup.php');

做一些php的配置和加載一些類聲明,包括系統主框架文件(system/engine下的文件)、一些必用到的helper和library。

系統主框架文件包括:

  registry:保存全局變量,使用了注冊者模式,controller的基類、model的基類,loader等均保存此對象的引用。沒有寫成單例模式,可能是想讓這個類更通用,可以額外new一個registry實例,在幾個對象內做共享用;

  loader:動態加載其他文件用,提供加載model、library、helper、database、config和language能力,其中加載model和database會new出一個實例將其保存到registry對象內, 對于數據類,只需一個實例;

  controller,model:控制器的基類和數據模型類的基類,功能很簡單;

  action:用戶的一個請求,對應一個動作,用請求的query參數route初始化action;

  front:請求分發器,派發action;

下面的框架流程,會介紹這幾個類具體都干了些什么。

3. 初始化registry、loader、db、錯誤處理函數和一些后續用到的library,并將這些library實例的引用保存到registry對象內,進而供給controller和model對象直接使用。

4. 初始化 front,action對象,此時action由url中query參數route的值"common/home"構造,action解析出對應controller文件名,類名和要執行的方法及參數?!?/p>

5.front派發action,根據action的類名屬性,new出controller對象ControllerCommonHome(catalog/controller/common/home.php),并用registry初始化,然后根據action的方法index(如果沒傳方法,默認為index)和參數屬性(無),執行ControllerCommonHome->index(),index方法內,處理業務邏輯,加載模板等,最后將要輸出到瀏覽器的內容保存到response內。注意controller的魔術方法 __get和__set,均從registry對象取值和賦值,所以可以像使用自己的屬性一樣,使用保存在registry的對象。例如:$this->load->model('catalog/category'), 調用loader對象的model方法。

6. index.php 內最后一行$response->output() 將內容輸返回給用戶。

至此框架處理完用戶該請求。

另見 本人寫的一個opencart插件opencart 百度登錄和百度錢包支付插件 響應式適應pc/mobile


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰西县| 谢通门县| 万州区| 武汉市| 柏乡县| 全南县| 汉寿县| 毕节市| 甘南县| 牙克石市| 隆子县| 郸城县| 海丰县| 城市| 聊城市| 嵊泗县| 城步| 益阳市| 竹北市| 乐至县| 通榆县| 驻马店市| 眉山市| 曲阳县| 奉贤区| 镇平县| 剑河县| 太仆寺旗| 浦东新区| 信宜市| 尼木县| 元阳县| 万宁市| 年辖:市辖区| 明光市| 顺义区| 上林县| 兰州市| 卢湾区| 新津县| 乐亭县|