Discuzx2开发标准流程,discuzx2开发流程_PHP教程
Discuzx2开发标准流程,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和少许的设计模式,来组织代码,理顺业务,这样扩展性较好,复用率高。当然,喜欢怎么玩,就怎么玩。开源的嘛。(其实数据库感觉设计的可以,如果是我,想必设计不出来,高手勿喷。)

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

宝塔面板是一款非常优秀的Linux系统下服务器管理面板,它拥有强大的功能和友好的界面,可以帮助用户轻松管理服务器。在使用宝塔面板的过程中,有时候需要对虚拟主机进行限速操作,以保证服务器的稳定性和流畅性。本文将介绍如何通过宝塔面板进行虚拟主机的限速设置,以达到良好的用户体验。一、限速概述限速是指对主机带宽进行限制,通过控制主机流量来保证服务器的正常运行。在

Gin框架是一个轻量级的Web框架,它提供了快速构建Web应用程序所需的基本功能。Gin框架具有灵活、高效、可扩展的特点,所以被广泛应用于互联网领域。其中,Gin框架的虚拟主机和域名绑定功能,是其它Web框架所不具备的重要特性,本文将对该功能进行详细介绍。一、什么是虚拟主机?虚拟主机是在一台物理主机上创建多个独立的、互相隔离的虚拟主机,每个虚拟主机都有自己独

PHP如何对接腾讯云云服务器ECS实现云端虚拟主机部署引言:随着云计算的快速发展,越来越多的企业和开发者选择将应用程序部署到云服务器上,以获得更好的弹性、安全性和可伸缩性。本文将介绍如何使用PHP与腾讯云云服务器ECS(ElasticComputeService)进行对接,实现云端虚拟主机的部署。步骤1:创建腾讯云云服务器ECS实例首先,我们需要在腾讯云

国外免费php虚拟主机有DreamHost、Bluehost、Hostinger、000Webhost、FreeHostia、Zymic、ByetHost和SiteGround。

在互联网时代,虚拟主机是一个非常流行的服务,它可以让用户拥有自己的网站并轻松地进行管理。但是,在使用虚拟主机时,安全问题也必须引起我们的重视。针对这种情况,宝塔面板给出了很好的解决方案,可以帮助我们更好地保护虚拟主机的安全。本文将介绍如何通过使用宝塔面板进行虚拟主机的安全防护。一、设置登录密码和端口在使用宝塔面板前,第一步就要设置一个安全的登录密码。默认的

Nginx如何实现基于域名的虚拟主机配置,需要具体代码示例Nginx是一款高性能的HTTP和反向代理服务器,提供了灵活的配置选项来实现基于域名的虚拟主机配置。在本篇文章中,我们将详细介绍如何配置Nginx来实现基于域名的虚拟主机,并提供具体的代码示例。首先,我们需要在Nginx的配置文件中添加虚拟主机的配置块。在Ubuntu系统上,默认的配置文件路径为/et

Nginx虚拟主机优化配置,提升网站性能和用户体验引言:如今,随着互联网的不断发展,网站的访问量也越来越大。而作为网站的入口,Nginx的优化配置对于提升网站性能和用户体验起着至关重要的作用。本文将介绍一些Nginx虚拟主机优化配置的方法,并附带代码示例,让您更好地理解和应用。一、虚拟主机的配置虚拟主机是Nginx中的一个重要概念,通过虚拟主机的配置,我们可

如何使用Nginx实现基于域名和路径的虚拟主机配置引言:在网络应用开发中,经常需要配置多个虚拟主机来提供不同的服务。Nginx是一个高性能的HTTP和反向代理服务器,通过使用Nginx,我们可以很方便地实现基于域名和路径的虚拟主机配置。本文将介绍如何使用Nginx来实现这样的配置,并给出相应的代码示例。一、基于域名的虚拟主机配置在Nginx的配置文件中,使用
