index.php文件分析,OpenCart index.php分析
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分析相关推荐
- 一、后台首页index.php【dedecms后台源码分析】
后台目录dede目录的所有问价的源码分析 使用的dedecms的版本5.7(2012-04-01更新) 后台登陆之后的首页分析dede/index.php <?php /*** 管理后台首页** ...
- 67.220.90.12/bbs/index.php,对乌云漏洞库的分析.md
漏洞都是相似的,但挖洞姿势却各有各的不同. 最近收集了很多src的资产域名,正在琢磨怎么用自动化扫描器来扫描,于是有了这个想法.乌云漏洞库有很多样本案例,网络上好像还没有人公开整理过乌云漏洞库中的pa ...
- java 内存快照怎么看_jvm内存快照dump文件太大,怎么分析
1.场景 通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出. 对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策. 这时候怎么办 ...
- index.dat文件剖析
一.前言 注重上网隐私和安全的人在每次上网后都会清除上网痕迹--"删除cookies"."删除掉上网的临时缓存文件"以及"删除上网历史".你 ...
- 基于CKEditor网页富文本编辑工具转PDF文件的技术预研分析报告
目 录 基于CKEditor网页富文本编辑工具转PDF文件的技术预研分析报告 1 1. 预研背景 4 2. 预研目的和意义 4 3. 预研目标 4 4. 预研技术概述 4 5. 预研技术实现 7 5 ...
- [转]index.dat文件剖析
转自http://blog.csdn.net/misterliwei/archive/2006/10/26/1352567.aspx 参考工程代码http://www.codeproject.com/ ...
- index.dat文件剖析(转)
一.前言 注重上网隐私和安全的人在每次上网后都会清除上网痕迹--"删除cookies"."删除掉上网的临时缓存文件"以及"删除上网历史".你 ...
- Apache Iceberg小文件处理和读数流程分析
点击上方蓝色字体,选择"设为星标" 回复"面试"获取更多惊喜 全网最全大数据面试提升手册! 第一部分:Spark读取Iceberg流程分析 这个部分我们分析常规 ...
- 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 ...
最新文章
- ISME:昆士兰大学郭建华组-人造甜味剂会促进细菌耐药性的传播
- windows下通过eclipse进行远程执行出错:Permission denied:
- Problem H Rock Paper Scissors,FFT
- 带着canvas去流浪系列之一:绘制柱状图
- 顺序表常见操作实现之一
- 单片机sleep函数的头文件_关于PIC单片机SLEEP指令
- 梦龙即时通讯软件测试初学者,梦龙即时通讯软件
- NSIS:在线下载并安装程序
- Android 6.0谷歌卡刷包,卡刷包走起:谷歌Nexus5升级安卓6.0/Android M教程
- Java实战之管家婆记账系统(19)——报告界面及功能实现
- HTML5游戏引擎(十四)-颜色效果——混合模式 滤镜 颜色矩阵滤镜 矩阵数据说明
- 解决MAC用HDMI连接显示器就没声音问题
- 图片转为PDF怎么弄
- 使用unbound在RHEL7上搭建DNS服务
- 红色警戒2+尤里的复仇,带完整音乐+影片,免安装版本,完美兼容WIN10
- 想学大数据?先看完这几本书再说
- 【DeepLearning】吴恩达深度学习课程笔记思维导图
- Aho-Corasick 多模式匹配算法、AC自动机详解
- Swift vs. Kotlin 漫谈之扩展篇
- 51单片机蜂鸣器操作
热门文章
- 服务器间数据传输的四种方式
- 数据分析数据挖掘(三)
- hashmap储存有向图_HashMap的存储结构及原理
- python语言写九九乘法表_怎么使用Python语言写一个九九乘法表?
- win10电脑黑屏只有鼠标箭头_电脑开机就黑屏,只显示鼠标怎么办?别急,简单几步,轻松解决!...
- 计算机二级数据库系统知识点,2020年全国计算机二级Access复习知识点:分布式数据库系统...
- 高中会考计算机免考条件,高中会考学生听力残疾可免考外语听力
- python 加干扰线 图片生成_用Python一键生成炫酷九宫格图片,火了朋友圈
- 推荐系统中传统模型——LightGBM + FFM融合
- Nginx (Install)