對discuz的代碼分析學習————首頁文件(轉自陳) 對discuz的代碼分析學習首頁文件

對discuz的代碼分析學習首頁文件

若是當前地址欄存在查詢字符,而且是一個數字,條件成立。
 查詢字符:www.baidu.com/index.php?aaa=bbb              aaa=bbb就是查詢字符
若是條件成立,則把home賦值給$_ENV['curapp'] ;  $_ENV能夠理解爲相似於$_GET的超全局數組。這裏的$_ENV['curapp']能夠理解爲選中的入口文件。
並將一個數組傳遞給$_GET,數組的第一個成員指定了控制器名稱,第二個成員制定了一個叫uid的參數,就是用戶id。 

若是這裏的條件成立了,127行的IF語句一定爲false,下面一大堆代碼都不用執行,一直跳到137行,直接就加載入口文件。
 

若是第一個IF語句爲false 
 

cache_domain.php是系統生成的配置文件。$domain數組是在cache_domain.php文件中聲明的。
 
若是$_ENV['domain']爲空,直接將當前選中的應用設置爲forum(論壇) ,而後跳到137行。
若是 $_ENV['domain']不爲空

25:將當前主機域名按.號拆分爲數組。
 
27:將獲取到的域名從第一個.號後一位的位置截取,一直截取到末尾。例如www.baidu.com -> 被截以後 -> baidu.com

 28:若是['domain']['app']不爲空,而且是數組,而且當前訪問的域名也是其數組值的一項。則:
 
30:在app數組中找到值爲當前域名的鍵,做爲選中的應用。好比當前訪問的域名爲www.baidu.com並且在app數組中找到了這一項:
 
那麼$_ENV['curapp']的值就爲home。

若是當前選中的應用是mobile(手機) ,$_ENV['curapp']重置爲forum
 
若是當前選中的應用是default或者當前選中的應用在默認應用數組中不存在,則把當前選中的應用賦值爲空。 
 php

37:這個條件會在設置根域名,而且當前訪問的也是這個根域名以後成立。



44:這一行的條件不知道什麼狀況下會成立。搞了好幾遍list數組始終爲空。下面的IF語句也不會執行,暫時不清楚list數組幹嗎用的。

74:若是當前訪問的域名是二級域名,而且這個二級域名不是保留域名,這個條件就會成立,checkholdmain函數用來檢查是不是保留域名。
 
75:獲取域名前綴 
76:獲取根域名
77:加載框架入口文件
 
這一串代碼看得出來是初始化操做。這些都是discuz_application類的屬性。
 
85:這行代碼會經過table_common_domain類查詢數據庫,找到根域名綁定的應用類型。fetch_by_domain_domainroot

 


 若是應用類型爲home如何如何,若是應用類型爲group如何如何。

大體分析
圖片html

相關文章
相關標籤/搜索