首頁 後端開發 php教程 DZ论坛核心代码分析计划-注释进行时_PHP教程

DZ论坛核心代码分析计划-注释进行时_PHP教程

Jul 21, 2016 pm 02:57 PM
程式碼 使用 分析 國內 客戶 市場 應用 核心 註解 計劃 論壇

DZ论坛在国内来说应用市场是最大的。客户可能使用并不关注其内在代码的好坏,但这个代码核心确实我们php初学者的最好教程。
网上搜罗一下,也没发现有详细的分析文件或者分析列表。既然php代表了开源代表了共享。为什么不这么做呢?
况且DZ的代码风格非常顺畅,看起来很舒适。而且有很多好的习惯和思路在里面,能学到很多东西.

开始从根目录下的index.php开始分析。我知道DZ采用了自创的模板系统。而且非常好用。但我不打算根据网上朋友的经验从include文件包开始分析。因为思路上太散了。所以我是根据页面使用习惯开始分析代码的。预计3天时间能出另一部分。
这一系列贴是我的初步分析篇。只是对其结构和代码组建思维以我个人的想法进行简单的分析。等全部工作完成,按现在的速度算(因为我也要上班,没时间天天扑上面)。一个月全部的初步分析篇大致能完成。然后接下来的工作是根据初步分析进行仔细的分析和应用。大致上是这样安排我的php自学过程的。
希望这点东西对和我一样学习方法的朋友有效。
事实上我建立了一个文件目录及作用表,但现在分析的内容比较少。所以暂时不发上来。等全部搞完了再发布。
说明:是基于最新的DZ6.1的核心代码!文件上我根据我自己的判断有的函数有的过程每一步都详细说明,有的并没有说得很清楚只是说明这个函数的大致作用。如果想根据我的的注释版来分析。注释就是作为各位的一个参考元素。如果有没有注释正确的,请跟贴说明。谢谢。附上我的总结笔记就是用来分享我从代码中学到的东西
希望有和我同样兴趣研究DZ的志同道合者发论坛小刀给我。。众人拾柴火焰高哈~

载入第一篇:1、DZ论坛核心代码分析计划--install包篇

我已经从最先的install文件包开始分析。已经分析完毕
Install篇
下面附上的是已经写好描述的源文件。。。很多值得借鉴的思想。就在这里留个坑吧。。。因为我电脑上东西乱仍。。某一年的某一天,我一不小心把我整合代码盘全删了。。。。很崩溃很崩溃。
分析没到每一行,那样太琐碎了。这样分析只是分析他的思路和思想。方法才是最重要的。函数自己随手就可以查的。

下面呢,是我的分析日记。2天就分析完了。挺简单的。不过很多东西我很少用,却及其有用。值得借鉴。

以下为引用的内容:
2008年10月3日17:46:52
分析文件:install/index.php
1、
在代码的顶部引入error_reporting()方法,设定php的错误提示等级。事实上php的配置文件可以配置,但是在每个文件重新设定这个错误提示等级,使错误提示更为灵活。
2、
在某些条件下通过使用set_time_limit()设定运行时间,并且通过ob_start()打开输出缓冲器。最好用@来屏蔽错误。
3、
使用define()设定多个常量而不是变量供程序代码使用。
分析文件:discuz_version.php
文件作用:定义版权的常量值
1、
因为这个文件是被引入调用其设定好的常量。所以从理论上任何文件都能调用。所以在一开始通过判断是否IN_DISCUZ为真,如果不是,则停止整个程序的运行。
2008年10月4日9:42:22
分析文件db_mysql.class.php
文件作用:数据库的链接类
1、
通过一个判断来决定是采用mysql_connect(非持续性)还是mysql_pconnect(持续性)
2、
通过判断来决定是采用mysql_unbuffered_query(执行操作,但不返回任何数据)还是mysql_query(执行操作,可返回数据)
3、
1和2两个经验点,大量使用了?:运算符;如:(exp1?(exp2):(exp3)).若exp1为真则exp2,反之exp3。
4、

//mysql_num_fields-取得结果集中字段的数目
function num_fields($query) {

return mysql_num_fields($query);

}
5、
//释放结果内存

function free_result($query) {

return mysql_free_result($query);

}
2008年10月4日10:21:48
总结:因为被包含文件可以通过路径进行访问,为了保护文件的安全性,DZ在所有需要引用其他文件的前面定义了一个常量IN_DISCUZ。在被引入文件的头部对这个常量进行判断,如果没有这个常量,也就是直接通过路径进行访问的。则不执行源代码中的任何部分。这是个很好的保护源代码措施。而且很简单。

另,在分析Install文件包的时候我发现DZ程序员的思维确实很不错。考虑很多错误出现的情况并且进行处理。说实话这点我还真做不到。值得学习。并且其考虑了数据库或者php版本问题,在db_mysql.class.php文件里就使用了一个动态设定数据存储编码的方法。大家可以借鉴一下。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/364111.htmlTechArticleDZ论坛在国内来说应用市场是最大的。客户可能使用并不关注其内在代码的好坏,但这个代码核心确实我们php初学者的最好教程。 网上搜罗...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
BTCC教學:如何在BTCC交易所綁定使用MetaMask錢包? BTCC教學:如何在BTCC交易所綁定使用MetaMask錢包? Apr 26, 2024 am 09:40 AM

MetaMask(中文也叫小狐狸錢包)是一款免費的、廣受好評的加密錢包軟體。目前,BTCC已支援綁定MetaMask錢包,綁定後可使用MetaMask錢包進行快速登錄,儲值、買幣等,且首次綁定還可獲得20USDT體驗金。在BTCCMetaMask錢包教學中,我們將詳細介紹如何註冊和使用MetaMask,以及如何在BTCC綁定並使用小狐狸錢包。 MetaMask錢包是什麼? MetaMask小狐狸錢包擁有超過3,000萬用戶,是當今最受歡迎的加密貨幣錢包之一。它可免費使用,可作為擴充功能安裝在網絡

網易信箱大師怎麼用 網易信箱大師怎麼用 Mar 27, 2024 pm 05:32 PM

網易郵箱,作為中國網友廣泛使用的一種電子郵箱,一直以來以其穩定、高效的服務贏得了用戶的信賴。而網易信箱大師,則是專為手機使用者打造的信箱軟體,它大大簡化了郵件的收發流程,讓我們的郵件處理變得更加便利。那麼網易信箱大師該如何使用,具體又有哪些功能呢,下文中本站小編將為大家帶來詳細的內容介紹,希望能幫助到大家!首先,您可以在手機應用程式商店搜尋並下載網易信箱大師應用程式。在應用寶或百度手機助手中搜尋“網易郵箱大師”,然後按照提示進行安裝即可。下載安裝完成後,我們打開網易郵箱帳號並進行登錄,登入介面如下圖所示

百度網盤app怎麼用 百度網盤app怎麼用 Mar 27, 2024 pm 06:46 PM

在如今雲端儲存已成為我們日常生活和工作中不可或缺的一部分。百度網盤作為國內領先的雲端儲存服務之一,憑藉其強大的儲存功能、高效的傳輸速度以及便捷的操作體驗,贏得了廣大用戶的青睞。而且無論你是想要備份重要文件、分享資料,還是在線上觀看影片、聽取音樂,百度網盤都能滿足你的需求。但很多用戶可能對百度網盤app的具體使用方法還不了解,那麼這篇教學就將為大家詳細介紹百度網盤app如何使用,還有疑惑的用戶們就快來跟著本文詳細了解一下吧!百度雲網盤怎麼用:一、安裝首先,下載並安裝百度雲軟體時,請選擇自訂安裝選

如何在iPhone中撤銷從主畫面中刪除 如何在iPhone中撤銷從主畫面中刪除 Apr 17, 2024 pm 07:37 PM

從主畫面中刪除了重要內容並試圖將其取回?您可以透過多種方式將應用程式圖示放回螢幕。我們已經討論了您可以遵循的所有方法,並將應用程式圖示放回主畫面如何在iPhone中撤消從主畫面中刪除正如我們之前提到的,有幾種方法可以在iPhone上恢復此變更。方法1–替換應用程式庫中的應用程式圖示您可以直接從應用程式庫將應用程式圖示放置在主畫面上。步驟1–橫向滑動以尋找應用程式庫中的所有應用程式。步驟2–找到您先前刪除的應用程式圖示。步驟3–只需將應用程式圖示從主庫拖曳到主畫面上的正確位置即可。這是將應用程式圖

如何使用Copilot產生程式碼 如何使用Copilot產生程式碼 Mar 23, 2024 am 10:41 AM

身為一名程式設計師,對於能夠簡化程式設計體驗的工具,我感到非常興奮。借助人工智慧工具的幫助,我們可以產生演示程式碼,並根據需求進行必要的修改。在VisualStudioCode中新引入的Copilot工具讓我們能夠創建具有自然語言聊天互動的AI生成程式碼。透過解釋功能,我們可以更好地理解現有程式碼的含義。如何使用Copilot產生程式碼?要開始,我們首先需要取得最新的PowerPlatformTools擴充。要實現這一點,你需要進入擴充頁面,搜尋“PowerPlatformTool”,然後點擊Install按鈕

PHP中箭頭符號的作用及實作應用 PHP中箭頭符號的作用及實作應用 Mar 22, 2024 am 11:30 AM

PHP中箭頭符號的作用及實踐應用在PHP中,箭頭符號(-&gt;)通常用於存取物件的屬性和方法。物件是PHP中物件導向程式設計(OOP)的基本概念之一,在實際開發中,箭頭符號在操作物件時發揮重要作用。本文將介紹箭頭符號的作用以及實踐應用,並提供具體的程式碼範例來幫助讀者更好地理解。一、箭頭符號的作用存取物件的屬性箭頭符號可以用來存取物件的屬性。當我們實例化一個對

小米汽車app怎麼用 小米汽車app怎麼用 Apr 01, 2024 pm 09:19 PM

小米汽車軟體提供遠端車控功能,讓使用者可以透過手機或電腦遠端控制車輛,例如開關車輛的門窗、啟動引擎、控制車輛的空調和音響等,下文就是這個軟體的使用及內容,一起了解下吧。小米汽車app功能及使用方法大全1、小米汽車app在3月25日上線蘋果AppStore,現在安卓手機的應用商店中也可以下載了;購車:了解小米汽車核心亮點和技術參數,可預約試駕、配置訂購您的小米汽車,支援線上處理提車待辦事項。 3.社群:了解小米汽車品牌資訊,交流用車體驗,分享精彩車生活;4、車控:手機就是遙控器,遠端控制,即時安防,輕

如何正確地在 Go 語言中使用空格 如何正確地在 Go 語言中使用空格 Mar 29, 2024 pm 03:42 PM

Go語言是一種簡單、有效率、並發性強的程式語言,它是由Google開發的開源語言。在Go語言中,空格的使用是非常重要的,它能夠提高程式碼的可讀性和易於維護性。本文將介紹如何正確地在Go語言中使用空格,並提供具體的程式碼範例。為什麼需要正確使用空格在程式設計過程中,空格的使用對於程式碼的可讀性和美觀性非常重要。恰當地使用空格可以讓程式碼更加清晰、易讀,從而減

See all articles