Discuzx2开发标准流程,discuzx2开发流程
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框架是一個輕量級的網頁框架,它提供了快速建立網頁應用程式所需的基本功能。 Gin框架具有靈活、高效、可擴展的特點,因此廣泛應用於互聯網領域。其中,Gin框架的虛擬主機與網域名稱綁定功能,是其它Web框架所不具備的重要特性,本文將對此功能進行詳細介紹。一、什麼是虛擬主機?虛擬主機是在一台實體主機上建立多個獨立的、互相隔離的虛擬主機,每個虛擬主機都有自己獨

國外免費php虛擬主機有DreamHost、Bluehost、Hostinger、000Webhost、FreeHostia、Zymic、ByetHost和SiteGround。

PHP如何對接騰訊雲端伺服器ECS實現雲端虛擬主機部署引言:隨著雲端運算的快速發展,越來越多的企業和開發者選擇將應用程式部署到雲端伺服器上,以獲得更好的彈性、安全性和可伸縮性。本文將介紹如何使用PHP與騰訊雲端雲端伺服器ECS(ElasticComputeService)進行對接,並實現雲端虛擬主機的部署。步驟1:建立騰訊雲端伺服器ECS實例首先,我們需要在騰訊雲

Nginx如何實現基於網域名稱的虛擬主機配置,需要具體程式碼範例Nginx是一款高效能的HTTP和反向代理伺服器,提供了靈活的設定選項來實現基於網域名稱的虛擬主機配置。在本篇文章中,我們將詳細介紹如何設定Nginx來實現基於網域名稱的虛擬主機,並提供具體的程式碼範例。首先,我們需要在Nginx的設定檔中新增虛擬主機的設定區塊。在Ubuntu系統上,預設的設定檔路徑為/et

在網路時代,虛擬主機是一個非常受歡迎的服務,它可以讓使用者擁有自己的網站並輕鬆地進行管理。但是,在使用虛擬主機時,安全性問題也必須引起我們的重視。針對這種情況,寶塔面板給了一個很好的解決方案,可以幫助我們更好地保護虛擬主機的安全。本文將介紹如何透過使用寶塔面板進行虛擬主機的安全防護。一、設定登入密碼和連接埠在使用寶塔面板前,第一步就要設定一個安全的登入密碼。預設的

Nginx虛擬主機優化配置,提升網站效能和使用者體驗引言:如今,隨著網路的不斷發展,網站的訪問量也越來越大。而作為網站的入口,Nginx的最佳化配置對於提升網站效能和使用者體驗起著至關重要的作用。本文將介紹一些Nginx虛擬主機最佳化配置的方法,並附帶程式碼範例,讓您更能理解和應用。一、虛擬主機的配置虛擬主機是Nginx中的重要概念,透過虛擬主機的配置,我們可

Nginx虛擬主機配置,管理多個網站入口在互聯網的發展過程中,建立自己的網站已經成為許多人的選擇。然而,隨著網站數量的增加,如何有效地管理多個網站入口成為了一個重要的議題。 Nginx虛擬主機的設定可以幫助我們實現這一目標。 Nginx是一款高效能的Web伺服器和反向代理伺服器,具備處理高並發請求的能力。其虛擬主機配置能夠讓一個伺服器同時託管多個網站,並將不同的
