OpenCart 是一套比较简单的MVC架构的php开源电子商务程序.

OpenCart 首先将前台和后台完全分离开来,后台文件结构在admin/目录下; 而前台在catalog/目录,入口文件index.php在根目录下。各自都有一个可以做不同设置的配置文件config.php,在这里设置一些目录路径常量、数据库信息等。

下面以OpenCart前台为例看看文件结构和MVC模式:单一入口,index.php 为入口文件

OpenCart基于MVC(+L)架构,在原始的OpenCart项目中,网站的主页是

catalog/controller/common/home.php

opencart程序结构:

admin 后台管理目录

-controller 程序逻辑控制目录

-model 程序模型目录

-view 程序模板目录

-language 语言包目录

index.php 管理后台入口

catalog 程序逻辑,模型,试图目录

-controller 程序逻辑控制目录

-model 程序模型目录

-view 程序模板目录

-language 语言包目录

sysytem 程序主要文件目录

image 图片目录

index.php 网站入口

index.php 入口文件分析

1.载入配置文件,安装。

载入配置文件config.php

检测是否新安装,是则跳转到 install/index.php

载入启动类(/system/startup.php)(程序引擎system/engine / 核心类system/library / helper类system/helper)

载入应用程序模块类(自动预加载的常用模块类,如customer 和tax 等)

2.启动引擎 Engine

引入engine/registry.php 实例化下面的类并设置

实例化加载器engine/loader.php,配置类library/config.php,数据库library/db.php 以及library/url.php

获取商店Store和商店设置Settings,定义错误类

3.处理请求 request/response

实例化library/request.php,library/response.php,library/cache.php, library/sesshion.php

语言检测,设置语言类library/language.php

其他常用预加载模块类的实例化和引入,如library/document.php,customer,tax等

4.前台控制器 /engine/front.php

addPreAction1: dispatch之前判断是否处于Maintenance Mode

addPreAction2: dispatch之前执行SEO url设置 catalog/controller/common/seo_url.php

request获取route 变量传递给Action,然后由前台控制器的dispatch方法处理该Action。

然后Dispatch 开始引入MVC 架构,整个过程由 Controller 贯穿:

5.Dispatch

Dispatch 请求的Action

6.Pre_Action

预处理action 作为子 Action

7.Action

继承自基础控制器类/engine/controller.php的类方法

8.默认index()方法

通过Load Model(engine/loader.php)和相应的Model通信如catalog/model/catalog/category.php

9.Model

Model:类方法执行sql语句,从数据库(library/db.php)中查询或操作数据,没有引入pdo等数据库抽象类

10.Controller:返回结果保存到$this->data[]数组

Controller 处理业务逻辑

11.View:$this->template指定模板

View 负责内容呈现方式和样式。

12.Controller:$this->render接受$this->data[] 和$this->template

传递回response

13..Controller:$this-response->setOutput()

最后由response 输出

index.php文件分析,OpenCart index.php分析相关推荐

  1. 一、后台首页index.php【dedecms后台源码分析】

    后台目录dede目录的所有问价的源码分析 使用的dedecms的版本5.7(2012-04-01更新) 后台登陆之后的首页分析dede/index.php <?php /*** 管理后台首页** ...

  2. 67.220.90.12/bbs/index.php,对乌云漏洞库的分析.md

    漏洞都是相似的,但挖洞姿势却各有各的不同. 最近收集了很多src的资产域名,正在琢磨怎么用自动化扫描器来扫描,于是有了这个想法.乌云漏洞库有很多样本案例,网络上好像还没有人公开整理过乌云漏洞库中的pa ...

  3. java 内存快照怎么看_jvm内存快照dump文件太大,怎么分析

    1.场景 通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出. 对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策. 这时候怎么办 ...

  4. index.dat文件剖析

    一.前言 注重上网隐私和安全的人在每次上网后都会清除上网痕迹--"删除cookies"."删除掉上网的临时缓存文件"以及"删除上网历史".你 ...

  5. 基于CKEditor网页富文本编辑工具转PDF文件的技术预研分析报告

    目  录 基于CKEditor网页富文本编辑工具转PDF文件的技术预研分析报告 1 1. 预研背景 4 2. 预研目的和意义 4 3. 预研目标 4 4. 预研技术概述 4 5. 预研技术实现 7 5 ...

  6. [转]index.dat文件剖析

    转自http://blog.csdn.net/misterliwei/archive/2006/10/26/1352567.aspx 参考工程代码http://www.codeproject.com/ ...

  7. index.dat文件剖析(转)

    一.前言 注重上网隐私和安全的人在每次上网后都会清除上网痕迹--"删除cookies"."删除掉上网的临时缓存文件"以及"删除上网历史".你 ...

  8. Apache Iceberg小文件处理和读数流程分析

    点击上方蓝色字体,选择"设为星标" 回复"面试"获取更多惊喜 全网最全大数据面试提升手册! 第一部分:Spark读取Iceberg流程分析 这个部分我们分析常规 ...

  9. Linux命令进阶-cpu监控内存监控文件IO网络IO性能分析

    Linux命令进阶-cpu监控内存监控文件IO网络IO性能分析 前言 1 linux基础命令 1.1 grep 1.2 ls 1.3 find 1.4 ulimit 1.5 curl 1.6 scp ...

最新文章

  1. ISME:昆士兰大学郭建华组-人造甜味剂会促进细菌耐药性的传播
  2. windows下通过eclipse进行远程执行出错:Permission denied:
  3. Problem H Rock Paper Scissors,FFT
  4. 带着canvas去流浪系列之一:绘制柱状图
  5. 顺序表常见操作实现之一
  6. 单片机sleep函数的头文件_关于PIC单片机SLEEP指令
  7. 梦龙即时通讯软件测试初学者,梦龙即时通讯软件
  8. NSIS:在线下载并安装程序
  9. Android 6.0谷歌卡刷包,卡刷包走起:谷歌Nexus5升级安卓6.0/Android M教程
  10. Java实战之管家婆记账系统(19)——报告界面及功能实现
  11. HTML5游戏引擎(十四)-颜色效果——混合模式 滤镜 颜色矩阵滤镜 矩阵数据说明
  12. 解决MAC用HDMI连接显示器就没声音问题
  13. 图片转为PDF怎么弄
  14. 使用unbound在RHEL7上搭建DNS服务
  15. 红色警戒2+尤里的复仇,带完整音乐+影片,免安装版本,完美兼容WIN10
  16. 想学大数据?先看完这几本书再说
  17. 【DeepLearning】吴恩达深度学习课程笔记思维导图
  18. Aho-Corasick 多模式匹配算法、AC自动机详解
  19. Swift vs. Kotlin 漫谈之扩展篇
  20. 51单片机蜂鸣器操作

热门文章

  1. 服务器间数据传输的四种方式
  2. 数据分析数据挖掘(三)
  3. hashmap储存有向图_HashMap的存储结构及原理
  4. python语言写九九乘法表_怎么使用Python语言写一个九九乘法表?
  5. win10电脑黑屏只有鼠标箭头_电脑开机就黑屏,只显示鼠标怎么办?别急,简单几步,轻松解决!...
  6. 计算机二级数据库系统知识点,2020年全国计算机二级Access复习知识点:分布式数据库系统...
  7. 高中会考计算机免考条件,高中会考学生听力残疾可免考外语听力
  8. python 加干扰线 图片生成_用Python一键生成炫酷九宫格图片,火了朋友圈
  9. 推荐系统中传统模型——LightGBM + FFM融合
  10. Nginx (Install)