ホームページ >バックエンド開発 >PHPチュートリアル >DZ フォーラム コア コード分析計画 - コメント進行中_PHP チュートリアル

DZ フォーラム コア コード分析計画 - コメント進行中_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:57:041078ブラウズ

DZ フォーラムは中国最大のアプリケーション市場を持っています。お客様は内部コードの品質に注意を払わないかもしれませんが、このコード コアは確かに PHP 初心者にとって最高のチュートリアルです。
ネットで検索しても詳細な分析資料や分析リストは見つかりませんでした。 php はオープンソースを表すため、共有を表します。なぜだめですか?
それに、DZ のコード スタイルは非常にスムーズで快適に見えます。そこには多くの良い習慣やアイデアが含まれており、多くのことを学ぶことができます

ルートディレクトリのindex.phpから分析を開始します。 DZ が独自のテンプレート システムを使用していることは知っています。使い方もとても簡単です。ただし、オンラインの友人の経験に基づいて、インクルード ファイル パッケージから分析を開始するつもりはありません。アイデアがバラバラすぎるからです。そこで私は、ページの使用習慣に基づいてコードを分析し始めました。別のパーツは 3 日以内に入手可能になる予定です。
この一連の投稿は私の予備的な分析です。私の個人的な考えに基づいて、その構造とコード構築の考え方を簡単に分析します。すべての作業が完了したら、現在のペースで計算します(私も仕事に行かなければならず、毎日作業する時間がないため)。予備分析全体は、およそ 1 か月以内に完了できます。次のステップは、予備分析に基づいた慎重な分析と適用です。私のPHP独学プロセスを大まかに整理するとこんな感じです。
このことが私と同じように勉強している友達に効果があることを願っています。
実際には、ファイル ディレクトリとロール テーブルを作成しましたが、現在分析する内容は比較的少ないです。なので今のところは載せません。すべてが完了するまで待ってから投稿してください。
説明: 最新の DZ6.1 コア コードに基づいています。このドキュメントでは、私が独自の判断に基づいて、いくつかの機能とプロセスの各ステップを詳細に説明していますが、中にはあまり明確ではなく、機能の一般的な機能を説明しているだけのものもあります。私の注釈付きバージョンに基づいて分析したい場合。コメントは参照要素として機能します。正しい注釈があればコメントを残してください。ありがとう。コードから学んだことを共有するための私の要約メモを添付します
DZ の学習に同じ興味を持つ志を同じくする人々が私にフォーラムのヒントを送ってくれることを願っています。 。みんなで薪を追加し、炎が上がります〜

最初の記事を読み込んでいます: 1. DZ フォーラムのコアコード分析計画 - インストールパッケージの記事

最初のインストールファイルパッケージから分析を開始しました。解析が完了しました
インストール
以下に説明を書いたソースファイルを添付します。 。 。学ぶ価値のあるアイデアがたくさんあります。ここに穴を残しておいてください。 。 。コンピューター上のものがまだ混乱しているためです。 。ある年のある日、私は誤ってすべての統合コード ディスクを削除してしまいました。 。 。 。とても荒廃した。
分析はすべての行に及ぶわけではありません。それはあまりにも簡単すぎます。この分析は彼の考えやアイデアの分析にすぎません。方法が最も重要です。機能はご自身で簡単に確認できます。

以下は私の分析日記です。分析は 2 日で完了しました。とてもシンプルです。しかし、めったに使わないけれど、とても便利なものもたくさんあります。学ぶ価値があります。

以下は引用内容です:
October 3, 2008 17:46:52
分析ファイル: install/index.php
1,
コードの先頭にerror_reporting()メソッドを導入してphpを設定しますエラー プロンプト レベル。実際、PHP 構成ファイルは構成できますが、エラー プロンプトをより柔軟にするために、各ファイルでエラー プロンプト レベルがリセットされます。
2.
特定の条件下で、set_time_limit() を使用して実行時間を設定し、ob_start() を使用して出力バッファを開きます。エラーをブロックするには @ を使用することをお勧めします。
3.
プログラムコードで使用する変数の代わりに複数の定数を設定するには、define() を使用します。
解析ファイル: discuz_version.php
ファイル関数: copyright
1,
の定数値を定義します。このファイルは、設定された定数を呼び出すために導入されているためです。したがって、理論上はどのファイルでも呼び出すことができます。したがって、最初に IN_DISCUZ が true であるかどうかが判断され、そうでない場合はプログラム全体が停止されます。
2008年10月4日 9:42:22
ファイルdb_mysql.class.phpを解析します
ファイル関数:データベースリンククラス
1.
mysql_connect(非永続)とmysql_pconnect(永続)のどちらを使用するかを判断します)
2,
mysql_unbuffered_query (操作を実行しますが、データを返さない) と mysql_query (操作を実行しますが、データを返します) のどちらを使用するかを判断するために使用します
3,
1 と 2 は、広く使用されている 2 つの経験点ですか? : 演算子: (exp1?(exp2):(exp3))。exp1 が true の場合は 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 を定義します。この定数はインポートしたファイルの先頭で判定され、存在しない場合はパス経由で直接アクセスされます。その後、ソース コードのどの部分も実行されません。これはソース コードを保護するための優れた手段です。そしてそれはシンプルです。

また、インストール ファイル パッケージを分析したところ、DZ プログラマーの考え方が実に優れていることがわかりました。さまざまなエラー状況を考慮して対処してください。正直に言うと、本当にこれはできません。学ぶ価値があります。また、データベースや PHP のバージョンの問題を考慮し、db_mysql.class.php ファイル内でデータ ストレージのエンコーディングを動的に設定する方法を使用します。誰もがそこから学ぶことができます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/364111.html技術記事 DZ Forum は中国最大のアプリケーション市場を持っています。お客様は内部コードの品質に注意を払わないかもしれませんが、このコード コアは確かに PHP 初心者にとって最高のチュートリアルです。 ネットで検索中...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。