织梦MVC开发框架是一个精简、迷你的web开发框架,用这个开发框架可以编写基于织梦内容管理系统的扩展功能、模块(插件),甚至可以将其分离出来开发博客、BBS、SNS等。

目录结构说明:
|_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 index中function ac_save()
控制器中将相关功能操作都存放至一个文件中,例如留言板,可以使用:
?ct=guestbook&ac={do}统一完成,这样也便于静态化部署.

1.控制器开发说明(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->SetTemplate();  
$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的方式进行输出。
   更多的关于模板标签的使用可以到http://help.dedecms.com/v53/ 上进行查询

转载于:https://blog.51cto.com/dason/531918

DedeCMS V5.7模块MVC框架基本说明相关推荐

  1. dedeCMS,标准的MVC框架运行原理和缓存

    2019独角兽企业重金招聘Python工程师标准>>> 1.织梦的工作原理:   a.模板引擎:   b.内核文件的载入.读取:   运行原理:url->配置文件->公共 ...

  2. 游戏mvc框架与模块

    先谈前端主架构,前端程序主架构有两个主要任务:1,要从架构高度合理划分前端各模块,提出可行的实现方案:2,从AS级别搭建程序架构(非文档级别),制定前端编程规则和接口,规范程序各部分的职责划分.这两个 ...

  3. mvc的宿舍管理系统源码 基于jsp_[源码和文档分享]基于JSP的MVC框架实现的图书推荐系统展示平台网站...

    推荐系统是目前互联网中最常见的一种智能产品形式.由于网络中信息量的快速增长以及图书出版行业出版量的攀升,人们需要一种办法,来解决信息过载的问题.此外,用户访问网络是为了获取信息,但并不是所有的访问都有 ...

  4. SpringMVC背景介绍及常见MVC框架比较

    一.Spring MVC 背景介绍 Spring框架提供了构建Web应用程序的全功能MVC模块.使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架还是Struts这样的W ...

  5. ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 ...

  6. spring mvc框架设计与实现

    spring mvc框架通过DispatcherServlet来作请求分发,主要由HandlerMapping,HandlerAdapter,HandlerInterceptor三个抽象来完成.通过H ...

  7. Django之MVC框架与MTV框架详解

    Django框架简介 MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图 ...

  8. Apache OFBIZ高速上手(二)--MVC框架

    继续上一篇博客,本篇博客介绍OFBiz的MVC框架. 1.OFBiz特点 OFBiz最基本的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具.包含实体引擎.服务引擎.消息引擎 ...

  9. MVC框架浅析(基于PHP)

    MVC框架浅析(基于PHP) MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数 ...

最新文章

  1. 传智播客java基础的习题_传智播客java基础班(集合与IO)阶段测试题
  2. Layout of the output array img is incompatible with cv::Mat (step[ndims-1] !
  3. python基础知识笔记简书_Python基础学习笔记
  4. 2-spark学习笔记-spark发展概述
  5. 斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示
  6. Java多线程面试准备:聊聊Executor框架
  7. CSS3--transition
  8. HDU 4332 Constructing Chimney [状态压缩+矩阵]
  9. java婚庆网站源码_基于jsp的婚庆网站-JavaEE实现婚庆网站 - java项目源码
  10. 13 张图带你学懂 Kubernetes Service(转载)
  11. mongodb 数组查询 php,关于PHP,查询mongodb里的数组的问题
  12. 无心剑中译雪莱诗14首
  13. vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess 1
  14. 3.数据结构 --- 栈和队列
  15. css3媒体查询实例,css3 响应式媒体查询的示例代码
  16. 时间表达式java定时器_java--定时器
  17. 启航——我的第一篇博客
  18. python 网络爬虫
  19. 快速查看Mac下软件的所有快捷键— CheatSheet
  20. c 语言字体怎么改,Notepad++设置字体语言格式方法介绍

热门文章

  1. elementUI中登录页form表单重复跳转登陆页
  2. iPhone6plus 的 iOS 11 GM和正式版安装包的 md5一模一样
  3. 微软发布企业安全进度报告 云应用安全服务即将面世
  4. PostgreSQL 分库分表 插件之一 pg_shard
  5. SCOM 2012 SP1安装过程
  6. Linux文件及文件内容的查找-转
  7. 蓝桥杯 ADV-120算法提高 6-17复数四则运算
  8. python 检测端口是否被占用
  9. eclipse中git分支创建与合并(-)
  10. shell 脚本批量安装perl包