我们的使命

助力跨境卖家高效建立全球销售网络

喜报2021年我司获《江苏省国家高新技术企业》认定

分类目录

文章标签

热门推荐

相关咨讯

opencart修改,magento架构

2022-11-02 11:10:49 - 米境通跨境电商

    

    OpenCart是一套比较简单的MVC架构的php开源电子商务程序,完全没有Magento系统那么复杂。当然简单的代价是相应的功能和安全性能上的不足。不过OpenCart系统中的一些经典设计还是很值得学习的。

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

    Catalog前台

    |

    index.php入口文件

    ||载入配置文件config.php

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

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

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

    |

    启动引擎Engine

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

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

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

    |

    处理请求request/response

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

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

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

    |

    前台控制器/engine/front.php

    ||addPreAction1:dispatch之前判断是否处于MaintenanceMode

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

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

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

    Dispatch

    ||Dispatch请求的Action

    Pre_Action

    ||预处理action作为子Action

    Action

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

    默认index()方法

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

    Model

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

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

    ||Controller处理业务逻辑

    View:$this->template指定模板

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

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

    ||传递回response

    Controller:$this-response->setOutput()

    ||最后由response输出
相关问答:
    联系我们
  • 24H客服
  • 联系电话:16651690460(陈经理)
  • 微信咨询:
南京天遥路联网络科技有限公司,版权所有 Copyright By ©米境通ERP4.0,2015-2025,苏ICP备:苏ICP备15044100号-4, 苏公网安备:32011402011043