index.php文件分析,OpenCart index.php分析

667edcd43a95a9d886a131fe51ede9aa.png

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 输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值