新闻中心

织梦内容管理系统(dedecms v5.7)MVC框架说明文档

作者 / 无忧主机 时间 2011-03-19 05:26:38

织梦内容管理系统(dedecms v5.73月份发布,最近一次更新在314日。虽说,新事物会存在着不足和缺点,但是任何一个成功的版本都会经历这一个阶段。任何一个成功品牌每天都在做同样一件事情,让自己的产品更完美、更强大。Dedecms亦如此,喜欢新鲜事物、体验新功能、喜欢挑战技术的站长们,就请选择使用dedecms v5.7吧,让我们一起让这个我们喜爱的、免费的开源的dedecms不断完善。无忧主机(www.51php.com)这几天通过测试,也发现了在php虚拟主机中安装完dedecms v5.7无法打开网站首页得bug,追其原因是由于模板中友情链接代码调用,导致的,临时解决办法就是再模板中删除关于友情链接的代码就可以解决,详细过程参阅“”。这不是我们今天的重点,织梦官方论坛发布最新的V5.7版本之后,也同步的发布了模块MVC框架得说明,这对于做二次开发的站长们,是非常有帮助的。下面是关于模块dedecms v5.7MVC框架说明。

一、什么是MVC类?

对于初次或即将常准备做开发的朋友,可能对MVC的概念可能有些模糊。好,我这里也简单说下。MVC是一个设计模式,C是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。MVC就是Modal view controler得缩写。M是指数据模型,V是指用户界面,C则是控制器。MVC的工作就是将数据模型(M)和用户界面(V)分开的工作。织梦MVC开发框架是一个精简、迷你的web开发框架,用这个开发框架可以编写基于织梦内容管理系统的扩展功能、模块(插件),甚至可以将其分离出来开发博客、BBSSNS

二、织梦(dedecms v5.7)模块MVC目录结构说明

|_app

    |___control      控制器(C)

    |___model        模型(M)

    |___templates    视图模板(V)

    |___libraries    类库

    |___data         配置

    |___data\helper  小助手

    |___static       样式,js,图片文件夹

    |___index.php    统一入口文件

解析与说明:

统一入口解析地址:http://你的网址/app/index.php?ct=index&ac=save

ct=index:控制器入口,对应到目录control中的index.php

如果RunApp()指定了第三个参数,例如问答中RunApp($ct, $ac , 'admin'),说明ct=index:控制器入口,对应到目录control/admin中的index.php

ac=save:操作,对应文件index.php中的class indexfunction ac_save()

控制器中将相关功能操作都存放至一个文件中,例如留言板,可以使用:

?ct=guestbook&ac={do}统一完成,这样也便于静态化部署.

三、控制器开发说明(control)

基本代码结构:

class yourctname extends Control

{

    public function ac_save()

    {

    }

}

控制器可以选择继承一个基类:Control,这个类对应的文件名是/include/control.class.php,这里面含有基类的相关操作说明,这里有几个常用方法:

$control->Model();//载入一个模型。例如问答模块中index.php中的 $this->question = $this->Model('mquestion'),就是在载入了mquestion这个模型。然后我们就可以通过$this->question来调用模型相应操作。实现数据的插入,更新等等操作。调用类的名字可以随便定义,但要保证没有冲突。模型的文件放在model目录中。

$control->Libraries();//载入一个类。有时开发我们需要一个系统中不存在的类时,我们可以通过这个方法来载入一个自己的类。具体的方法和模型一样。类放在libraries目录中。

$control->helper();//载入一个小助手。引入小助手是为了更好的帮助我们存放和管理需要用到的Function。具体的方法和模型一样。小助手放在data\helper目录中。

$control->SetTemplet();  // 设定当前操作需要指定的模板;

$control->SetVar($k, $v);  // 设定模板需要解析的变量,在模板中使用{Dede:var.name /}进行调用.

GLOBALS['k'] = $k;  // 设定模板需要的变量,在模板中可以直接用<?php echo $k;?>方式输出(问答模块基本上都是采用这样的方式输出),这种方式比较适合处理一些复杂的数据,例如数组。

$control->GetVar($k);  // 获取设定的模板变量

$control->Display();  // 显示模板解析后的内容

$control->SaveTo();  // 将内容保存到文件

控制器中关于模板的使用操作可以参看DedeTemplate模板引擎,具体可以参看公司内部开发文档中模板说明相关章节.

四、模型开发说明(Model):

class mtype extends Model

{

    public function get_one()

    {

    }

}

控制器可以选择继承一个基类:Model,这个类对应的文件名是/include/model.class.php,这里面含有数据库类的相关操作说明,这里只有一个方法:

$model->dsql();//实例化数据库操作类。模型中关于数据库类的使用操作可以参看数据库类使用说明(http://help.dedecms.com/v53/archives/functions/db/

五、模板标签调用说明

如果在控制器中通过$control->SetVar($k, $v); 这种方式设定的参数,我们通过标签 {dede:var.name /}的方式进行调用。

如果在控制器中通过GLOBALS['k'] = $k;这种方式设定的参数,我们通过标签 {dede:global.name/}的方式进行调用或者直接采用php的方式进行输出。

无忧主机 提供美国/香港 纯Linux环境下高端免备案php空间,仅仅只需99元一年起。

本文地址:https://www.51php.com/dedecms/2142.html

1
1
1
1
1
1
1