DedeCMSV5.7模块MVC框架分析
本文较为详细的分析了DedeCMSV5.7模块MVC框架结构。分享给大家供大家参考。具体分析如下:
织梦MVC开发框架是一个精简、迷你的web开发框架,用这个开发框架可以编写基于织梦内容管理系统的扩展功能、模块(插 件),甚至可以将其分离出来开发博客、BBS、SNS等.
目录结构说明:
|___control 控 制器(C)
|___model 模型(M)
|___templates 视图模板(V)
|___libraries 类 库
|___data 配置
|___data\helper 小助手
|___static 样式,js,图片文件夹
|___index.php 统一入口文件
统一入口解析地址:http://你的 网址/app/index.php?ct=index&ac=savect=index:控制器入口,对应到目录control中的 index.php
如果RunApp()指定了第三个参数,例如问答中RunApp($ct, $ac , 'admin'),说明ct=index:控制器入口,对应到目录control/admin中的index.php
ac=save:操作,对应 文件index.php中的class index中function ac_save()
控制器中将相关功能操作都存放至一个文件中,例如留言 板,可以使用:
?ct=guestbook&ac={do}统一完成,这样也便于静态化部署.
1.控制器开发说明 (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(); // 设定当前操作需要指定的模板;
//phpfensi.com
$control->SetVar($k, $v); // 设定模板需要解析的变量,在模板中使用{dede:var.name /}进行调用.
GLOBALS['k'] = $k;
设定模板需要的变量,在模板中可以直接用方式输出,问答模块基本上都是采用这样的方式输出,这种方式比较适合处理一些复杂的数据,例如数组.
$control->Display(); // 显示模板解析后的内容
$control->SaveTo(); // 将内容保存到文件
控制器中关于模板的使用操作可以参看DedeTemplate模板引擎,具体可以参看公司内部开发文档中模板说明相关 章节.
模型开发说明(Model):
{
public function get_one()
{
}
}
控制器可以选择继承一个基类:Model,这个类对应的文件名是/include/model.class.php,这里面 含有数据库类的相关操作说明,这里只有一个方法:
$model->dsql();
实例化数据库操作类,模型中关于数据库类的使用操作可以参看数据库类使用说明
模板标签调用说明:
如果在控制器中通过$control->SetVar($k, $v); 这种方式设定的参数,我们通过标签 {dede:var.name /}的方式进行调用.
如果在控制器中通过GLOBALS['k'] = $k;这种方式设定的参数,我们通过标签 {dede:global.name/}的方式进行调用或者直接采用php的方式进行输出.
希望本文所述对大家的dedecms二次开发有所帮助。
您可能感兴趣的文章
- 08-05DedeCMS后台模块列表显示空白的解决办法
- 08-05织梦dedecms单页模块更改生成目录和链接的方法
- 08-05阿里云提示:织梦dedecms 支付模块注入漏洞导致SQL注入修复方法
- 08-05织梦dedecms系统问答模块时间显示
- 08-05织梦dedecmsV5.7搜索页面调用自定义字段的方法
- 08-05阿里云提示织梦dedecms支付模块漏洞解决办法
- 08-05dedecms后台模块管理空白不显示的解决方法
- 08-05dedecms /include/payment/alipay.php支付模块注入漏洞修复方案
- 08-05织梦在PHP7上安装模块时模块包含的文件为空的解决方法
- 08-05织梦问答模块打开时显示“service.dedecms.com”的解决方法
阅读排行
本栏相关
- 08-05dede:channel currentstyle 失效问题,调用子
- 08-05网站底部版权符号怎么打出来?
- 08-05Dedecms文件目录结构解说(能知道织梦
- 08-05织梦DedeCMS获取当前栏目文章数量
- 08-05Dedecms5.7版ckeditor网页编辑器添加中文
- 08-05织梦模板如何添加和调用自定义字段
- 08-05DedeCMS后台模块列表显示空白的解决办
- 08-05DedeCMS自定义字段图片调用的问题{de
- 08-05织梦DedeCMS调用显示discuz里面主题的方
- 08-05限制织梦会员每天投稿数量方法
随机阅读
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10SublimeText编译C开发环境设置
- 01-10C#中split用法实例总结
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-11ajax实现页面的局部加载
- 04-02jquery与jsp,用jquery
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10delphi制作wav文件的方法
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文