# 總結構
phpcms2008(以下簡稱為cms) 主要分成[PHPCMS核心]和其它[模塊]兩大部份。
admin, include, templates 三個目錄為核心目錄。
ask, brand, comment 這類目錄則是模塊目錄,如 ask 目錄就是 ask 模塊,目錄中放的是 ask 模塊的源代碼.
另外還有 data, images, uploadfile 三個數據目錄,data 主要用于保存文件緩存文件,images 保存 JS 及圖片文件,uploadfile 保存上傳文件.
# admin 目錄
admin 目錄用于存放[后臺功能控制器](*.inc.php)及[后臺模板](templates/*.tpl.php)。
在 cms 中,后臺功能控制器都通過 /admin.php 文件作為單一入口進行調用了,也就是說,使用后臺功能時瀏覽器訪問的都是 /admin.php 文件.
在 /admin.php 文件中主要進行 cms 環境初始化,引入頭文件,函數定義等,登錄驗證,權限檢查,日志記錄等操作,最后再根據訪問參數包含(include)對應的后臺功能控制器文件.
/admin.php 的訪問參數有三個:mod,file,代表后臺功能控制器文件所屬的模塊及其文件名,當 mod=phpcms 或為空時表示 cms 的后臺功能,這時便是從 /admin 目錄中查找對應的后臺功能控制器文件.
eg. /admin.php?mod=phpcms&file=content&action=manage&catid=599
mod=phpcms 表示從 /admin 目錄中找控制器文件,file=content 表示控制器文件名為 content.inc.php.
所以,訪問這個地址會包含 /admin/content.inc.php 文件,從而運行這個后臺功能控制器的代碼.
為了減少控制器文件的數量,后臺功能控制器文件會把多個操作都寫在一個控制器文件中,比如 content.inc.php 這個控制器就包含了所有文章操作的后臺功能,如添加,修改,刪除,審核,列表,搜索,回收站等等等,再根據瀏覽器 action 參數值決定進行哪一個操作.
控制器中使用 switch 語句判斷 action 參數值并進行相應操作,具體流程與實現參考 /admin.php, /admin/content.inc.php 源代碼.
# include 目錄
include 目錄用于存放函數定義文件,類定義文件,配置文件等非直接執行的流程文件.
eg. global.func.php
此為函數定義文件,此文件中定義的是整個 cms 中通用的函數,學習 cms 必讀的文件.文件名后序為 .func.php
eg. /include/tree.class.php
此文件為類定義文件,文件名后序為 .class.php,tree 則為類名.
eg. config.inc.php
此為非類或函數定義,但用于 include 的文件,文件名后序為 .inc.php,此文件是 cms 的配置文件,里面是 cms 所有常量配置項,學習 cms 必讀文件.
eg. py.dat
這類文件保存的是一些數據,所以也放于 include 目錄中.
/include/admin 目錄中保存的文件意為后臺用到的文件.
eg. /include/admin/global.func.php
整個 cms 后臺中通用的函數,學習 cms 必讀的文件.
/include/fields 目錄保存的是 cms 模型字段類型定義文件,這部份說明留在后面的文檔中說明.Vevb.com
學習 cms,基本上需要把 /include 中的文件都看一次.
# templates 目錄
templates 目錄存放前臺頁面用到的模板,文件名后序為 .html,目錄中第一層表示模板風格:
eg. /templates/default/:默認風格
eg. /templates/yj518/:yj518風格
在風格目錄下,模板按模塊分,每個模塊的模板文件保存在以模塊名命名的目錄下.
eg. /templates/yj518/phpcms/:phpcms 模塊的模板
eg. /templates/yj518/comment/:comment 模塊的模板。
# data 目錄
data 目錄保存的是文件緩存文件。實際上,文件緩存文件保存目錄都由 /include/config.inc.php 中的常量進行定義,如 CACHE_PATH 常量定義的就是緩存默認路徑,只不過 cms 默認把所有緩存類的目錄都放在 data 目錄之下。
因為源代碼會使用 SVN 進行版本管理,但緩存文件并不屬于源代碼,而且 data 目錄通常很容易就達到數十M以上,把這些文件加入版本管理并不合適。
另外,在上傳源代碼到服務器時,需要處處小心避免上傳緩存文件到服務器,因為緩存文件緩存的是數據庫的數據,本地與服務器上的數據不一樣,上傳了緩存文件很可能導至服務器 cms 運行出錯。
所以,data 目錄放到源代碼目錄之外,則 /../data. 現在源代碼目錄一般為 phproot,則 data 目錄的位置為: phproot/../data,與 phproot 同級.
# images 目錄
images 保存的是網頁中要用到的一些靜態文件,如 js 文件,css 文件,圖片文件等.
/imgages/js 目錄存放的是 js
其它一般是圖片或 css 文件.
# uploadfile 目錄
uploadfile 目錄存放的是通過瀏覽器上傳的文件,基本都是圖片文件,容量非常大,服務器上此目錄達到 30G 上下.
命名規則為:年/月日/年月日+隨機數字.文件后序.
eg./uploadfile/2011/0104/20110104121650167.jpg
基于與 data 目錄一樣的原因,uploadfile 目錄同樣是放到源代碼目錄之外.
新聞熱點
疑難解答