1、第4章 控制器 74.1 类工厂 bd.class.php 74.2 控制器基类 ginkgo.action.php 74.3 创建新的控制器 7第5章 视图 95.1 模板解析引擎 gtpl.class.php 95.2 模板语法 95.3 制作模板 10第1章 系统架构本系统基于MVC模式研发,遵循MVC基本结构。系统主要文件如下图所示:其中,cnf中存放系统配置文件Controller中存放控制器Global中存放全局使用的各种插件、功能文件夹等Images中存放系统涉及到的图片Model中存放系统模型View中存放系统视图Index.php是唯一入口文件。第2章 业务流程第3章 模型3
2、.1 数据库相关模型./model/public中存放数据库相关模型。分别为:gblock.class.php 区块模型gcfg.class.php 配置模型gcms.class.php CMS模型gcmt.class.php 评论模型gcy.class.php 分类模型gdb.class.php CRUD封装gdbca.class.php 数据缓存geditor.class.php 在线编辑器接口gfls.class.php 文件操作模型ghelp.class.php 帮助系统模型gimg.class.php 图片系统模型glog.class.php 日志模型gmsg.class.php 信
3、息中心模型gpower.class.php 权限控制模型gproperty.class.php 自定义字段模型gsession.class.php 会话模型gsj.class.php 信息模型gsql.class.php SQL分析模型gsystem.class.php 核心模型gur.class.php 用户模型3.2 数据库无关模型./model/system中存放数据库无关模型。gca.class.php 系统缓存模型gco.class.php 分类树模型gev.class.php 数据分析模型gfl.class.php 文件流模型ggd.class.php GD库接口ghtml.cla
4、ss.php 静态页模型gjson.class.php JSON接口gpg.class.php 分页模型greport.class.php 系统信息模型gstr.class.php 字符串处理封装gtpl.class.php 模板解析引擎gxml.class.php XML处理模型3.3 创建新的模型模型文件命名规则:“模型名”+class.php每个模型文件必须包含1个class,命名“模型名”。Eg.:greport.class.phpclass greport /类定义每个模型中必须有public变量 $bd,并在构造函数中对其赋值: public $bd; public functio
5、n _construct(&$bd) $this-bd = $bd; 模型中的其他方法可以任意定义。在model文件夹中创建一个模型文件,即可通过类工厂bd的make方法实例化。系统将自动在model文件夹中搜寻模型文件。若不能找到,则会报错。Eg:$report = $this-bd-make(report);第4章 控制器4.1 类工厂 bd.class.php基于工厂模式生产类的实例。public function make($obj)用于产生$obj指定的对象的一个实例。如果实例已经存在,则调用已有的实例。类文件搜索路径:1、 MA.APPDIR2、 MP3、 MS未发现类定义,则返回
6、错误信息。public function parse()请求路由。调用适当的控制器。4.2 控制器基类 ginkgo.action.php所有控制器的基类,主要用于加载系统语言包、进行权限控制等。4.3 创建新的控制器控制器文件命名规则:“控制器名”+action.php每个控制器文件必须包含1个class,命名“控制器名”。并继承自ginkgo.action.php Eg.:cms.action.phpclass cms extends ginkgo每个控制器中必须有public变量 $bd,并在构造函数中对其赋值:控制器若需要和视图协同工作:public $tpl;并在构造函数中初始化:$
7、this-tpl=$this-make(tpl);并重写display方法。 public function display() /方法定义第5章 视图5.1 模板解析引擎 gtpl.class.phppublic function setCacheTime($time = false)设定编译缓存保留时间,若参数为flase,则不生成缓存。public function assign($target,$vars)向模板中传递变量。$target为模板变量名,$vars为控制器中变量名。public function readTpl($file)读取模板文件public function is
8、Cached($file,$par = NULL,$cachename = NULL)检查缓存文件是否存在。不存在则根据setCacheTime中的定义决定是否生成新的缓存文件。public function compileTpl($source)编译模板,调用一系列compie函数对模板进行编译,包括对include语句编译、模板变量编译、模板常量编译、数组编译、执行语句编译、SQL编译、控制结构编译、区块编译、字符串编译等等。public function display($file,$par=NULL,$cachename = NULL)输出模板。若模板缓存存在,直接输出缓存。5.2 模
9、板语法模板以类似XML语法嵌入HTML文件中。模板标签以gin;/省略 开头。gin;$var,输出一个来自于控制器的变量v:tplvar,输出一个模板变量eval:echo aa,执行一个php语句。include:XXXX,引入一个文件 if:$aa0 gin;endif 判断结构 foreach:$vars,var,id gin;varendforeach将数组$vars中的每个元素赋给模板变量var,并逐一输出var5.3 制作模板模板文件以html文件为基础,加入模板标签制成。模板文件必须命名为*.tpl,并存放在./view/default/template/中。模板文件编码应与配置文件中的编码一致。模板文件中所需的变量必须在控制器中使用$tpl-assign()方法传递到模板。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1