Home > Backend Development > PHP Tutorial > DZ Forum Core Code Analysis Plan-Commenting in Progress_PHP Tutorial

DZ Forum Core Code Analysis Plan-Commenting in Progress_PHP Tutorial

WBOY
Release: 2016-07-21 14:57:04
Original
1057 people have browsed it

DZ Forum has the largest application market in China. Customers may not pay attention to the quality of its internal code, but this code core is indeed the best tutorial for our PHP beginners.
After searching online, I did not find any detailed analysis documents or analysis lists. Since php represents open source, it represents sharing. Why not?
Besides, DZ’s code style is very smooth and looks comfortable. And there are many good habits and ideas in it, and you can learn a lot.

Start the analysis from index.php in the root directory. I know that DZ uses its own template system. And it's very easy to use. But I don't plan to start analyzing from the include file package based on the experience of online friends. Because the ideas are too scattered. So I started analyzing the code based on page usage habits. It is expected that another part will be available in 3 days.
This series of posts is my preliminary analysis. Just a simple analysis of its structure and code construction thinking based on my personal thoughts. When all the work is completed, I will calculate it at the current pace (because I also have to go to work and don’t have time to work on it every day). The entire preliminary analysis can be roughly completed in one month. Then the next step is careful analysis and application based on the preliminary analysis. This is roughly how I arranged my PHP self-study process.
I hope this will be useful to friends who study the same way as me.
In fact, I created a file directory and role table, but there is relatively little content to analyze now. So I won’t post it for now. Wait until everything is finished before posting.
Note: It is based on the latest DZ6.1 core code! In the document, I have explained every step of some functions and processes in detail based on my own judgment. Some of them are not very clear and just explain the general function of the function. If you want to analyze it based on my annotated version. Comments serve as a reference element for you. If there are any correct annotations, please leave a comment. Thanks. The purpose of attaching my summary notes is to share what I learned from the code
I hope that like-minded people with the same interest in studying DZ will send me a forum tip. . Everyone adds firewood and the flames are high ~

Loading the first article: 1. DZ Forum core code analysis plan--install package article

I have started the analysis from the first install file package. The analysis has been completed
Install
Attached below is the source file with the description written. . . Lots of ideas worth learning from. Just leave a hole here. . . Because things on my computer are still messed up. . One day one year, I accidentally deleted all my integrated code disks. . . . Very devastated.
The analysis does not go into every line, that would be too trivial. This analysis is just an analysis of his thoughts and ideas. The method is the most important. The function can be checked easily by yourself.

The following is my analysis diary. The analysis was completed in 2 days. Quite simple. However, there are many things that I rarely use, but are extremely useful. Worth learning from.

The following is the quoted content:
October 3, 2008 17:46:52
Analysis file: install/index.php
1,
Introduce the error_reporting() method at the top of the code to set the error prompt level of PHP. In fact, the PHP configuration file can be configured, but the error prompt level is reset in each file to make the error prompt more flexible.
2.
Under certain conditions, set the running time by using set_time_limit(), and open the output buffer through ob_start(). It's best to use @ to block errors.
3.
Use define() to set multiple constants instead of variables for use by program code.
Analysis file: discuz_version.php
File function: Define the constant value of copyright
1,
Because this file is introduced to call its set constants. So in theory any file can be called. So at the beginning, it is judged whether IN_DISCUZ is true, and if not, the entire program is stopped.
October 4, 2008 9:42:22
Analyze the file db_mysql.class.php
File function: database link class
1,
Determine whether to use mysql_connect through a judgment (non-persistent) or mysql_pconnect (persistent)
2,
Decide by judgment whether to use mysql_unbuffered_query (performs an operation, but does not return any data) or mysql_query (performs an operation, and can return data)
3 ,
Two experience points 1 and 2, used a lot? : Operator; such as: (exp1?(exp2):(exp3)). If exp1 is true, then exp2, otherwise exp3.
4.

//mysql_num_fields-Get the number of fields in the result set
function num_fields($query) {

return mysql_num_fields($query);

}
5,
//Release result memory

function free_result($query) {

return mysql_free_result($query);

}
October 4, 2008 10:21:48
Summary: Because the included file can be accessed through the path, in order to protect the security of the file, DZ defines a constant IN_DISCUZ in front of all other files that need to be referenced. This constant is judged at the head of the imported file. If there is no such constant, it is accessed directly through the path. Then no part of the source code is executed. This is a good measure to protect source code. And it's simple.

Also, when analyzing the Install file package, I found that DZ programmers have really good thinking. Consider many error situations and deal with them. To be honest, I really can't do this. Worth learning. And it takes into account the database or PHP version issue, and uses a method of dynamically setting the data storage encoding in the db_mysql.class.php file. Everyone can learn from it.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/364111.htmlTechArticleDZ Forum has the largest application market in China. Customers may not pay attention to the quality of its internal code, but this code core is indeed the best tutorial for our PHP beginners. Search online...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template