附录B -- 二次开发说明

CUSTOM_CORE_DIR二次开发目录简介

二次开发目录(以下简称CUSTOM_CORE_DIR)提供一个独立的二次开发环境目录,需要开发者在config.php中自定义一个文件目录,用于接管系统原有的流程,从而达到在不影响系统本身代码的情况下进行二次开发的目的。

此手册目标人群

开发者:二次开发者,基于ecstore的新应用或扩展已有应用

CUSTOM_CORE_DIR目前可以重载的目录或文件有(每个APP下):

  • MVC文件
  • LIB
  • dbschema
  • XML文件(site.xml,services.xml,desktop.xml等)
  • 设置setting.php
  • widgets文件
  • xmlschema文件
  • initial初始化文件
  • task.php安装任务文件

CUSTOM_CORE_DIR使用方法与规则

  • 首先我们需要在系统的config.php中加入一行"define('CUSTOM_CORE_DIR',ROOT_DIR.'/xxx');"来定义二次开发的环境目录。xxx代表二次开发目录名,二者需要一致。
  • 然后我们在与APP文件夹同级的目录下新建立一个名为xxx的文件夹,把需要接管的文件按原目录(APP下目录)重建。
  • 把需要接管的文件按照原APP,原路径,以及原文件名重建(如果需要还原,把新文件删掉即可)。
  • 如果需要改动dbschema,或者xml文件,后台更新维护才能生效。

使用CUSTOM_CORE_DIR

  • 在配置文件config/config.php中加入二次开发的环境目录配置
define('CUSTOM_CORE_DIR',ROOT_DIR.'/custom');
  • 修改文件

如果在二次开发中需要修改 app/b2c/controller/admin/brand.php 文件

那么我们可以需要在app 同级下建立custom文件夹,然后在custom文件夹中建立 /b2c/controller/admin/brand.php 文件

custom 中的文件命名规则和在 app 下是一样的,这样custom中的brand.php 接管了 app下的brand.php

如果是修改只要修改custom 中的文件就可以了,如果需要还原只要把custom中的文件删除即可。

使用二次开发模式的优缺点

可以在不修改原系统代码的前提下,重载并扩展系统功能,为其他定制app提供支持

如果定义了desktop.xml或者service.xml或者dbschema中的数据库描述文件,那么原系统的这些文件如果升级后发生变化,那么该部分变化将无法得到更新。所以尽量避免对这些文件的定制重载(后续版本会更改这个机制,对于这类文件会采用内容追加的方式,而非替代)