搜尋
首頁後端開發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
如何在 Windows 11、10 中启用或禁用核心隔离内存完整性如何在 Windows 11、10 中启用或禁用核心隔离内存完整性Apr 27, 2023 pm 10:43 PM

如今,大多数Windows用户都使用虚拟机。当他们系统上的核心隔离被禁用时,安全风险和攻击是可以预料的。即使设置了核心隔离,如果用户升级了系统,也会禁用内存完整性。如果启用核心隔离,系统将免受攻击。对于经常使用虚拟计算机的人,强烈建议他们启用它。如果您正在寻求有关如何在任何Windows11系统上启用或禁用核心隔离内存完整性的说明,此页面可以提供帮助。如何使用Windows安全应用在Windows11中启用或禁用核心隔离内存完整性第1步:按Windows键并键入Windows安全

discuz论坛是什么discuz论坛是什么Jul 10, 2023 am 11:03 AM

discuz论坛是一种网络论坛软件,也称BBS,它是一种用于在互联网上建立论坛社区的程序系统。只哟中功能强大的论坛软件,可以帮助用户建立一个专业、完善的论坛社区,并且可以实现多种功能,如搭建用户注册、登录、查看主题、发布帖子、发表评论、设置版主等功能,让用户可以轻松地进行论坛社区的管理和维护。

Discuz论坛权限管理:阅读权限设置指南Discuz论坛权限管理:阅读权限设置指南Mar 10, 2024 pm 05:33 PM

Discuz论坛权限管理:阅读权限设置指南在Discuz论坛管理中,权限设置是至关重要的一环。其中,阅读权限的设置尤为重要,它决定了不同用户在论坛中能够看到的内容范围。本文将详细介绍Discuz论坛的阅读权限设置,以及如何针对不同的需求进行灵活的配置。一、阅读权限基础概念在Discuz论坛中,阅读权限主要有以下几个概念需要了解:默认阅读权限:新用户注册后默认

苹果M3 Ultra推出全新版本,新增32个CPU核心和80个GPU核心苹果M3 Ultra推出全新版本,新增32个CPU核心和80个GPU核心Nov 13, 2023 pm 11:13 PM

这款芯片可能会搭载高达80个GPU核心,进而成为M3系列中性能最强大的产品。Max两倍核心数量从M1与M2系列的发展模式来看,苹果的「Ultra」版芯片基本上是「Max」版本的两倍核心数量,这是因为苹果实际上将两颗Max芯片透过内部连接技术结合起来,形成了M1Ultra与M2Ultra。80个GPU核心M3Ultra可能拥有「高达80个图形处理核心」。这一预测基于苹果芯片的发展路径:从基础版到「Pro」版,再到图形核心数量翻倍的「Max」版,以及CPU和GPU核心都翻倍的「Ultra」版。举例来

Discuz 论坛热帖设置指南Discuz 论坛热帖设置指南Mar 10, 2024 am 11:45 AM

Discuz论坛热帖设置指南随着网络的迅速发展,论坛作为一个重要的网络社区平台,扮演着连接用户、分享信息和交流观点的重要角色。在Discuz论坛中,热帖是吸引用户并提高论坛活跃度的重要方式之一。通过设置热帖,管理员可以将优质内容置顶展示,激发用户参与讨论,增加帖子的曝光度和点击率。本文将介绍如何在Discuz论坛中设置热帖功能,同时提供具体的代码示

php论坛有哪些php论坛有哪些Jul 25, 2023 am 11:12 AM

php论坛有:1、PHP论坛,PHP官方网站的论坛板块,是PHP开发者之间交流的重要平台;2、phphub,国内知名的PHP技术社区,也是中国最大的PHP技术论坛之一;3、Laracasts,一个面向Laravel框架的在线学习平台;4、Reddit PHP,一个全球知名的社交新闻聚合网站;5、SitePoint,一个提供从网页设计到开发的综合性技术社区。

前后端分离、社交论坛、问答、发帖/BBS项目,多端功能完整前后端分离、社交论坛、问答、发帖/BBS项目,多端功能完整Jul 25, 2023 pm 05:39 PM

林风社交论坛小程序|H5论坛|app论坛是java+vue+uniapp开发的前后端分离社交论坛问答发帖/BBS项目,包括论坛图文帖,视频,圈子,IM私聊,微信支付,付费贴,积分签到,钱包充值等论坛小程序论坛app完整功能。

Golang的核心是否仅限于单核运行?Golang的核心是否仅限于单核运行?Feb 29, 2024 pm 06:39 PM

《Golang的核心是否仅限于单核运行?》Golang作为一门现代化的编程语言,在并发处理和性能方面有着出色的表现。然而,有人对Golang的核心是否仅限于单核运行提出了质疑。在本文中,我们将探讨Golang的并发特性以及它在多核处理器上的表现,并通过具体的代码示例来解答这个问题。Golang在语言层面对并发处理进行了深入的设计和支持。它使用goroutin

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器