PHPCMS的使用小結(jié)
更新時(shí)間:2010年09月20日 01:04:19 作者:
前段時(shí)間仔細(xì)看了一下PHPCMS這套開源的系統(tǒng),實(shí)現(xiàn)了程序與模板分離,覺(jué)得寫得真的不錯(cuò)。本人很少關(guān)注開源系統(tǒng),尤其是PHP的,覺(jué)得PHP本身就是一個(gè)寵大的函數(shù)庫(kù),不過(guò)幾千個(gè)系統(tǒng)函數(shù)確實(shí)解決了不少問(wèn)題。
下面我講講關(guān)于這套系統(tǒng)的加載流程
定義根目錄,定義include目錄
加載核心文件
配置文件'config.inc.php'
全局函數(shù)'global.func.php'
目錄操作函數(shù)'dir.func.php'
url相關(guān)函數(shù)'url.func.php'
數(shù)據(jù)輸出相關(guān)類'output.class.php'
權(quán)限類'priv_group.class.php'
時(shí)間處理類'times.class.php'
加載語(yǔ)言數(shù)組'phpcms.lang.php'
加載數(shù)庫(kù)存類'db_mysql.class.php'
定義常量,大部分我們常用的信息如IP,HTTP_REFERER,SCRIPT_NAME...一律用常量
獲得變量,從$_POST,$_GET,$_COOKIE,-> extract
讀取CACHE,cache_read函數(shù)大部分都是讀取的一些數(shù)組文件,然后extract (extract每個(gè)數(shù)組都別忘了unset)
獲得當(dāng)前$mod,默認(rèn)是PHPCMS
判斷用戶是否登錄
讀取會(huì)員組權(quán)限
讀取模板文件,通過(guò)template函數(shù)
首先會(huì)讀取根據(jù)參數(shù)生成cache模板php文件
判斷是否存在該文件并且該文件 TPL_ROOT.TPL_NAME.'/'.$module.'/'.$template.'.html'生成日期是否等于TPL_CACHEPATH.$module.'_'.$template.'.tpl.php',否則重新編譯和生成tpl文件
讀取tpl文件
這套CMS的優(yōu)點(diǎn)在于程序與模板分離,將常用的數(shù)據(jù)通過(guò)以數(shù)組形式存取在文件上面,提升了很高的性能,不用每次都從數(shù)據(jù)庫(kù)來(lái)讀取,然后就是template,通過(guò)自帶的語(yǔ)法函數(shù)編譯后存取為tpl增加了模板的靈活性,美工不用懂得PHP語(yǔ)法,也能靈活的寫布局;里面自帶的TAG功能也不錯(cuò)。
缺點(diǎn)在于,一次性加載了太多的不需的文件在內(nèi)存中,尤其是都是以變量和數(shù)組形式,不管是否用得著。
亮點(diǎn)在于,可以很方便生成HTML,彌補(bǔ)了缺點(diǎn),總體來(lái)說(shuō)架構(gòu)和思路相當(dāng)不錯(cuò),值得學(xué)習(xí)和二次開發(fā)!
定義根目錄,定義include目錄
加載核心文件
配置文件'config.inc.php'
全局函數(shù)'global.func.php'
目錄操作函數(shù)'dir.func.php'
url相關(guān)函數(shù)'url.func.php'
數(shù)據(jù)輸出相關(guān)類'output.class.php'
權(quán)限類'priv_group.class.php'
時(shí)間處理類'times.class.php'
加載語(yǔ)言數(shù)組'phpcms.lang.php'
加載數(shù)庫(kù)存類'db_mysql.class.php'
定義常量,大部分我們常用的信息如IP,HTTP_REFERER,SCRIPT_NAME...一律用常量
獲得變量,從$_POST,$_GET,$_COOKIE,-> extract
讀取CACHE,cache_read函數(shù)大部分都是讀取的一些數(shù)組文件,然后extract (extract每個(gè)數(shù)組都別忘了unset)
獲得當(dāng)前$mod,默認(rèn)是PHPCMS
判斷用戶是否登錄
讀取會(huì)員組權(quán)限
讀取模板文件,通過(guò)template函數(shù)
首先會(huì)讀取根據(jù)參數(shù)生成cache模板php文件
判斷是否存在該文件并且該文件 TPL_ROOT.TPL_NAME.'/'.$module.'/'.$template.'.html'生成日期是否等于TPL_CACHEPATH.$module.'_'.$template.'.tpl.php',否則重新編譯和生成tpl文件
讀取tpl文件
這套CMS的優(yōu)點(diǎn)在于程序與模板分離,將常用的數(shù)據(jù)通過(guò)以數(shù)組形式存取在文件上面,提升了很高的性能,不用每次都從數(shù)據(jù)庫(kù)來(lái)讀取,然后就是template,通過(guò)自帶的語(yǔ)法函數(shù)編譯后存取為tpl增加了模板的靈活性,美工不用懂得PHP語(yǔ)法,也能靈活的寫布局;里面自帶的TAG功能也不錯(cuò)。
缺點(diǎn)在于,一次性加載了太多的不需的文件在內(nèi)存中,尤其是都是以變量和數(shù)組形式,不管是否用得著。
亮點(diǎn)在于,可以很方便生成HTML,彌補(bǔ)了缺點(diǎn),總體來(lái)說(shuō)架構(gòu)和思路相當(dāng)不錯(cuò),值得學(xué)習(xí)和二次開發(fā)!
相關(guān)文章
PHP連接sql server 2005環(huán)境配置及問(wèn)題解決
這篇文章主要介紹了PHP連接sql server 2005環(huán)境配置及問(wèn)題解決,需要的朋友可以參考下2014-08-08一個(gè)PHP數(shù)組應(yīng)該有多大的分析
PHP在數(shù)組處理上非常低效,尤其是內(nèi)存占用較多,常常使得httpd進(jìn)程消耗太多資源。2009-07-07PHP頁(yè)面轉(zhuǎn)UTF-8中文編碼亂碼的解決辦法
這篇文章主要介紹了php中uft-8中文編碼亂碼的解決辦法,需要的朋友可以參考下2015-10-10PHP數(shù)組式訪問(wèn)接口ArrayAccess用法分析
這篇文章主要介紹了PHP數(shù)組式訪問(wèn)接口ArrayAccess用法,結(jié)合實(shí)例形式分析了數(shù)組式訪問(wèn)接口ArrayAccess的概念、功能、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-12-12php采用ajax數(shù)據(jù)提交post與post常見方法總結(jié)
這篇文章主要介紹了php采用ajax數(shù)據(jù)提交post與post常見方法,實(shí)例總結(jié)了json格式傳遞數(shù)據(jù)的優(yōu)點(diǎn)并總結(jié)了四種常見的POST提交數(shù)據(jù)方式,需要的朋友可以參考下2014-11-11PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印
這篇文章主要介紹了PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02PHP中配置IIS7實(shí)現(xiàn)基本身份驗(yàn)證的方法
本文介紹的是在PHP中IIS7實(shí)現(xiàn)基本身份驗(yàn)證的方法,希望對(duì)你有幫助,一起來(lái)看。2015-09-09淺析php中array_map和array_walk的使用對(duì)比
這篇文章給大家先是詳細(xì)的介紹了array_map()和array_walk()的語(yǔ)法、參數(shù)以及注意事項(xiàng),而后又給大家詳細(xì)的介紹了其中的關(guān)鍵點(diǎn),文中介紹的很詳細(xì),相信會(huì)對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們可以參考借鑒,感興趣的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11