dedecms代码研究三
上次,我們從dedecms的index.PHP文件中了解到了很多信息,也提出了一些問題:
1)加載了/include/common.inc.php,里面做了哪些工作?2)/include/arc.partview.class.php到底是干什么的,/include/下還有很多arc開頭的文件都是干什么的?3)MfTemplet這個函數到底對模板文件路徑這個字符串做了什么操作?4)partview類的相關方法都有什么秘密?本文開始就帶著前面的問題,繼續我們的dedecms之旅吧。
我們就先來看看common.inc.php里面都有什么吧
?
//error_reporting(E_ALL); error_reporting(E_ALL || ~E_NOTICE); define('DEDEINC', str_replace("\\", '/', dirname(__FILE__) ) ); define('DEDEROOT', str_replace("\\", '/', substr(DEDEINC,0,-8) ) ); define('DEDEDATA', DEDEROOT.'/data'); define('DEDEMEMBER', DEDEROOT.'/member'); define('DEDETEMPLATE', DEDEROOT.'/templets');。。。。。。。。。。。。。。。。。。。。。。
define('DEDEMODEL', './model');
define('DEDECONTROL', './control');
define('DEDEAPPTPL', './templates');
//系統配置參數
require_once(DEDEDATA."/config.cache.inc.php");
//數據庫配置文件
require_once(DEDEDATA.'/common.inc.php');
?
打開/include/common.inc.php里面的注釋已經說地比較清楚了。我們大概說說結構。
先是定義一堆常量。然后是做一些安全措施,對PHP的系統環境進行一些設置,代碼里面的注釋已經寫地很清楚了。
接下來是把dedecms的系統配置參數文件包含進來:require_once(DEDEDATA."/config.cache.inc.php");
看文件名字,我們猜測這個配置文件可能是數據庫里面的配置信息的緩存。
接下來加載了數據庫配置信息文件:require_once(DEDEDATA.'/common.inc.php');
這個文件,不是根據數據庫中信息生成的緩存,而是dedecms安裝的時候生成的。前一篇文章我們說過index.php文件開始,檢測dedecms是否安裝,就是看這個文件是否存在的。
再接下來,整理了很多目錄,比如:站點根目錄、模板目錄,插件目錄、數據目錄等,還整理了很多變量。最后加載了數據庫操作類dedesql.class.php和常用函數文件common.func.php
嗯,common.inc.php的謎底揭開,里面沒什么好玩的東西啦,都是最基本的東西。
?
接下來我們就得看看arc.partview.class.php吧,這里面可是dedecms關鍵呢
加載了channelunit.class.php,typelink.class.php,ftp.class.php
?下面就是partview類的定義啦
因為index.php中使用partview類的SetTemplet方法和SaveToHtml方法,所以,我們為了能更簡單地深入,就從這兩個方法著手。
我們先看看partview的構造函數。
創建了一個DedeTagParse類的實例,看名字是標簽解析類哦。然后設置了幾個參數。
接下來,new了一個TypeLink類,設置了一堆參數。搞的很云里霧里的。
?
一、看看SetTemplet吧。啊,這個還算簡單。
① 使用DedeTagParse類的LoadTemplet方法載入模板。
② 設置一些Fields數組的元素
③ 調用ParseTemplet方法。
ParseTemplet方法里面弄了一堆$GLOBALS數組的元素,然后調用了MakeOneTag函數。費解啊
?
二、再看看SaveToHtml方法吧
前面就是建目錄,最后用DedeTagParse的SaveTo方法保存到文件。
?
呃~不給力啊。
只能回頭想想,都看到了什么~
嗯,為了能生成首頁,搞了個很搞不懂的partview類,然后里面調用了貌似萬能的DedeTagParse方法,解析模板,生成靜態文件。
僅此而已。
里面還夾雜了其他函數和類,但不管怎么樣這個DedeTagParse是重點,下次得重點分析了。
今天就到這吧,鳥兒的~太亂了,一點章法都沒有
轉載于:https://www.cnblogs.com/ronghua/p/5935820.html
總結
以上是生活随笔為你收集整理的dedecms代码研究三的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#缓存absoluteExpirati
- 下一篇: 内连接、左外连接、右外连接、交叉连接区别