Discuzx2开发标准流程

研究了有一个月的discuz x2的源代码。然后有了一些开发的心得。写心得也算是一种回顾,温故而知新嘛。

首先,要理解每一个根目录页面的大概的加载流程顺序。这里,我就不用根目录的标准文件了。直接举例,写一个新的模块,它的名字叫做newModule.php。

流程是这样的:

1. newModule.php首先加载核心的类文件,/source/class/clsss_core.php这个是核心的类文件,这个文件是初始化了整个dz的核心对象,用了单例模式。名字叫做$discuz,这个对象里面有几个比较重要的特点。首先,是$_G的参数,被引用到了这个对象的var属性中,也就是$discuz->var = $_G,然后在对象内用$this->var来操作$_G,在对象外面,比如独立函数中,使用$_G来操作参数;其次是这个对象里面引用了所有的其他对象,包括数据库对象和其他对象,都是用引用来获得在对象内操作的它们时的同步改变。(其实这个设计原本就比较混乱,不过可以理解,为了照顾以前的设计,纯OO的php设计是忌讳这样的,应该使用注册表或者组合模式来得更好)

2. 加载支持文件,/source/function/function_core.php文件是所有核心函数,何谓核心函数,核心函数的意思就是在核心类需要实例化的时候,它们就会被使用到。

3. 加载模块所需要的独立函数, /source/function/function_newModule.php文件,是该模块自己所需要的独立的函数,这些函数应该是从逻辑或者是业务上来说是不能被归结到某个对象或者类里面。

4. 加载模块自定义的类文件,/source/class/class_newModule.php文件,这个文件是新模块所需要用到类,这个文件可以创建自己的扩展类,特别是领域驱动,或者OO爱好者。

5. 加载模块自定义的动作文件,什么叫动作文件,就是url传值中的mod,这文件的作用是,如果提供最后这个新模块所需要的最终入口函数。

6. 加载完以上文件,那么,就可以产生了一个可以供用来使用的大块php的。所有的必须要的函数都已经准备,就等着ajax或者form的提交或者template的显示。

需要注意一点是:其实这里是一个比较标准的,遵从dz原本设计的流程,可以无缝的内签到dz中,而不会因为系统升级从来影响功能。淡然了。高手们从来都不满足的,他们一般都会脱离dz的流程。不过,破坏性怎么样?就不得而知了。需要因人而异。

我的建议是使用OO和少许的设计模式,来组织代码,理顺业务,这样扩展性较好,复用率高。当然,喜欢怎么玩,就怎么玩。开源的嘛。(其实数据库感觉设计的可以,如果是我,想必设计不出来,高手勿喷。)

时间: 2024-10-10 02:38:24

Discuzx2开发标准流程的相关文章

深入解析彩38源码搭建APP生成 整个APP开发标准流程

一般的APP开发及上线流程 步骤如下: 首先,制作一款APP,必须要有相关的idea(主意),也就是说,第一步是APP的idea(主意)形成. 其次,彩38源码搭建bbs.yasewl.com请添加链接描述就是通过那些idea来进行APP的主要功能设计以及大概界面构思和设计. App的开发是一个不断推敲的过程. 首先,如果要做一款app,必须要前期进行沟通,初步表明此款app要实现的效果,属于哪个类型的app.在功能和实现价值基本敲定的情况下,开始进入项目评估阶段.这个时候产品经理会根据之前商定

APP开发的基本流程

一个独立App开发人的自白:做APP就是一场赌局,你要会押注 下面我们就直接来看下APP从业者必知的整个APP开发标准流程. 一般的APP开发及上线流程 步骤如下: 首先,制作一款APP,必须要有相关的idea(主意),也就是说,第一步是APP的idea(主意)形成. 其次,就是通过那些idea来进行APP的主要功能设计以及大概界面构思和设计. App的开发是一个不断推敲的过程. 首先,如果要做一款app,必须要前期进行沟通,初步表明此款app要实现的效果,属于哪个类型的app.在功能和实现价值

北京兄弟连PHP实地培训

下载地址:http://www.zygx8.com/thread-2523-1-4.html 课程大纲: 1.PHP基础部分 本部分涉及到Web开发必备基本的技术,和能开发一个完整的动态网站项目.课程内容大体上包括动态网站开发的三个方面:前台用户界面布局编写(HTML5+CSS3):存储网站内容的数据库设计(MySQL):服务器业务处理(PHP)程序开发.课程中的每个知识点都是程序开发人员必不可少的内容,而且每个技术点的内容都非常全面,深度到位,课上实例不仅丰富而且实用.另外,每个知识点都是以目

一次完败的Release

一次完败的Release 去年8月份加入一家创业公司,和原同事做VR相关的产品开发,到18年正月初七,总共release过两次,真正经理了一次从0到1的过程.第一次release产品初步成型,大概在10月份,在公司内部做了一次宣发,我们做的是ToC的产品,但这次release没有真正意义上的C端客户,倒是可以拿着这个雏形产品到处去找内容提供商:另外可以拿到市场上去"试点"了,找一些潜在的目标用户,去收集反馈:再有就是需要向投资人交答卷. 第二次release就是直接面向实在的客户了,r

游戏开发观念又转变了-需要学习更多

来西山居上班有一段时间了.像我这种从小公司过来的,除了食堂的饭菜比较好吃外,也没有发现大公司有什么特别的地方.9.25我们就开始放假了,很多功能单的截至日期都是9.25.过去的这一周我都是在赶进度.因为接手的系统差不多要重新做吧,时间还蛮赶.不过今天发现功能肯定有一个单完不成了.既然完不成,也没有办法.下面进入正题.这周我在调试好友系统.这个系统是我接手过来的,当初接手时说服务端已经完成了,接入客户端的新 UI 即可.碰巧我开始做这个功能时,策划那边也在催.我大概看了一下服务端代码,觉得加班加点

乐芝麻网教系统开发说明

一.系统概述: 1.乐芝麻网教系统(目前已有PC电脑版与手机客户端版)是套集学习.教育.培训.考试.调查.门户.互动等多功能于一体的网络培训管理的标准化平台,作为乐芝麻科技的核心产品,是依托公司团队多年的行业经验,融合了众多领导型组织用户的应用需求和推广经验,面向期望建立学习型组织提供完整的人才培养与学习管理系统.产品遵循ISO10015国际培训标准流程设计,基于国际平台标准(SCORM2004)开发.让用户体验到标准化的力量和标准化适用性,并坚持技术服务于应用,应用创造价值的指导思想 2.系统

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA

WIN32界面开发之三:DUI雏形开发(一)

http://blog.csdn.net/harvic880925/article/details/9491387 2013-07-26 09:26 3585人阅读 评论(12) 收藏 举报 目录(?)[+] 前言:这部分涉及工程比较大,所以我打算分开为两篇来写,第一篇完成基本框架的构建,第二篇添加上EVENT和NOTIFY机制. 完成目标:仿照DirectUI,完成一个基本雏形,开发一个布局控件(Dialog),和一个按钮控件(Button),通过XML来布局窗体,最后按钮响应点击.鼠标移动等

制式刻板的教育, 成了敏捷开发最大的绊脚石

从小所接受的教育,只讲求「正确答案」,长大之后也只会「理盲」的在敏捷开发中找「正确答案」.将敏捷开发变为一「正确答案的流程样板活动」,而永远无法在敏捷开发中,以「道理」来说服团队成员,以「决策」来应变外部的变化. 所以,实施敏捷的团队,普遍的现象是:按时开站立会议,回顾会议,但沉默不语的人多. 选代进行中,会共同澄清需求,但等待「最终需求规格(答案)」的人占多数,能对 User Story 提出不同场景的人少之又少. 写自动化单元测试代码的人有,但绝大多数人只是将测试覆盖率当成是「最终标准答案」