亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > PhpCMS > 正文

phpcms2008, phpcmsV9, yaf, ThinkPHP, QeePHP, CodeIgniter, Zend Framework

2024-09-10 07:16:07
字體:
來源:轉載
供稿:網友

phpcms2008,phpcmsV9,yaf,ThinkPHP,QeePHP,CodeIgniter,Zend Framework 目錄結構小結.

說明:

本文希望通過查看一些開源的 PHP 項目和 PHP 框架發現有利于模塊化的項目目錄結構規則.

# PHPCMS 2008

  1. admin ——核心模塊后臺控制器 
  2.      * templates ——核心模塊后臺模板 
  3. data ——文件緩存目錄 
  4. images ——css, js, jpg 等文件目錄 
  5. include ——核心模塊定義類文件。 
  6.      * admin ——核心模塊后臺定義類文件(如類,函數) 
  7.      * dict ——中文分詞數據文件 
  8.      * fields ——文章模型自定義字段文件。 
  9.      * fonts ——字體文件 
  10.      * ipdata ——IP數據文件 
  11. languages ——多語言包 
  12.      * zh-cn ——簡體中文 
  13.           ** phpcms.lang.php ——核心模塊語言包 
  14.           ** guestbook.lang.php ——留言模塊語言包 
  15. templates ——前臺模板目錄 
  16.      * default ——默認樣式 
  17.           ** phpcms ——核心模塊前臺模板 
  18.           ** guestbook ——留言模塊前臺模板 
  19. uploadfile ——上傳文件目錄 
  20. guestbook ——留言模塊 
  21.      * admin ——留言模塊后臺控制器 
  22.           ** templates ——留言模塊后臺模板 
  23.      * include ——留言模塊定義類文件。 
  24.      * index.php ——留言模塊首頁。 
  25. admin.php ——后臺管理界面入口文件。 
  26. index.php ——網站首頁。 

phpcms2008 沒使用單一入口結構,所以處理請求的頁面(被瀏覽器直接訪問)散落在各個模塊目錄下,比如 guestbook/index.php.

此結構分成“核心+模塊”的目錄結構,核心模塊就是 phpcms 自身,包括后臺管理,后臺菜單,文章模型等 cms 的核心功能,模塊則像“留言”模塊。

此結構明確地提出“模塊”的概念,并以一級目錄劃分模塊(/guestbook/)。

但是,cms 核心功能并沒有作為一個“模塊”,于是在 admin.php 后臺入口中會看到類似這樣的代碼:

if ('phpcms' != $mod) { $path = "{$mod}/admin/{$file}.php"; }

需要判斷目標路徑是否核心(即 phpcms),核心則不需要追加模塊路徑,否則便加上模塊目錄路徑,因此這種結構造成了路徑的不統一。

另外,有兩個公共目錄 templates 和 languages,這兩個目錄下卻以模塊劃分,包括核心,即 templates/phpcms.這兩個目錄中的文件是在安裝一個模塊時從模塊目錄的 install 目錄下復制過去的,這也造成了路徑的不統一.

實際上,把前端模板都放在 templates/ 目錄下是有作用的,在 SVN 中設置權限就很多便,只需要把 templates 目錄設為前端人員開放即可,否則,若各模塊的模板分散在各模塊中,就像后臺模板,那就得遂個模塊地設置權限.

include 目錄下的文件沒有很好的分類,使得里面還包含了如 IP 數據庫,字體這樣的文件。

小結:此結構明確地以目錄劃分出“模塊”的概念,但目錄結構還不夠清晰和統一.

# PHPCMS V9

  1. admin.php  ——后臺管理入口 
  2. index.php  ——程序主入口 
  3. uploadfile  ——網站附件目錄 
  4. statics  系統附件包 
  5.      * css ——系統css包 
  6.      * images ——系統圖片包 
  7.      * js ——系統js包 
  8. caches ——緩存文件目錄 
  9. phpcms  ——phpcms框架主目錄 
  10.      * languages ——框架語言包目錄 
  11.           ** zh-cn ——簡體中文 
  12.                *** comment.lang.php ——評論模塊語言文件。 
  13.      * libs ——框架主類庫、主函數庫目錄 
  14.           ** classes ——類定義文件,主要是公共代碼。 
  15.           ** data ——分詞數據,字體,IP數據目錄 
  16.           ** functions ——函數定義文件,主要是公共代碼。 
  17.      * model ——框架數據庫模型目錄 
  18.           ** comment_data_model.class.php ——評論模塊的一個模型。 
  19.           ** content_check_model.class.php ——內容模塊的一個模型。 
  20.      * modules ——框架模塊目錄 
  21.           ** comment ——評論模塊目錄 
  22.                *** classes ——類定義文件。 
  23.                *** functions ——函數定義文件。 
  24.                *** install ——安裝模塊時用到的文件。 
  25.                     **** languages ——安裝時會復制到 phpcms/languages 下。 
  26.                     **** templates ——安裝時會復制到 phpcms/templates/default/comment 下。 
  27.                *** templates ——后臺模板。 
  28.                *** index.php ——前臺控制器(類定義文件) 
  29.                *** comment_admin.php ——后臺控制器(類定義文件) 
  30.      * templates ——框架系統模板目錄 
  31.           ** default ——默認模板樣式 
  32.                *** content ——內容模塊的模板目錄 
  33.                *** comment ——評論模塊的模板目錄。 
  34.      * base.php 框架入口文件。  //Vevb.com 
  35. phpsso_server  ——phpsso主目錄(另一個系統,目錄下的結構跟上面一樣) 

因為屬于 phpcms 的不同版本,因此跟 phpcms 2008 對比著看:

此結構使用了單一入口的結構,因此在根目錄下的文件比較少。

此結構使用了 static 表示 css, js 這類靜態文件,代替 phpcms2008 中的 images 目錄。

在 phpcms 目錄中,有 languages, model, templates 公共目錄,分別存放各模塊相應類型的文件。

phpcms/libs 目錄就相當于 phpcms2008 的 include 目錄。

phpcms/modules 就是各模塊目錄了,此結構中沒像 phpcms2008 那樣分成“核心+模塊”,而是所有功能都是模塊,其中 cms 功能就是 content(內容)模塊.

小結:明確地用目錄劃分出“模塊”的概念,并且所有功能都以模塊的形式存在,但不明白為什么 model 要作為公共目錄,而不是分散在各模塊目錄之下.

# Yaf 2.2.7 框架

  1. public 
  2.      * index.php ——入口文件 
  3.      * .htaccess ——重寫規則     
  4.           ** css 
  5.           ** img 
  6.           ** js 
  7. conf 
  8.      * application.ini ——配置文件    
  9. application 
  10.      * controllers ——默認模塊控制器目錄 
  11.           ** Index.php ——默認控制器 
  12.      * views ——默認模塊視圖目錄 
  13.           ** index   ——控制器名 
  14.                *** index.phtml ——默認視圖 
  15. modules ——其他模塊 
  16.      * mymod ——mymod模塊目錄(下級目錄結構跟 application 目錄結構相似) 
  17. library ——本地類庫 
  18. models  ——model目錄 
  19. plugins ——插件目錄 

此結構使用的是單一入口結構,因此根目錄文件較少,并且入口文件及 css, img, js 這類靜態文件單獨地放在 public 目錄下,與其它源代碼文件相分開,在配置服務器時只需要把 public 設為根目錄即可,可避免其它源代碼文件直接被瀏覽器訪問.

使用了“默認模塊+其它模塊”的結構,在 application 目錄下的為默認模塊,在 modules 目錄下的為其它模塊,明確地以目錄劃分出了“模塊”的概念.

不明白為什么 models 目錄放在根目錄下,而不是分散在各模塊目錄中.

# ThinkPHP 3.0 框架

分兩種模式,一是不使用“模塊分組”,另一種是使用“模塊分組”.

## 不使用模塊分組

  1. ThinkPHP ——框架目錄 
  2. Public ——公共資源目錄(即 css, js, img 這類) 
  3. Uploads ——上傳文件目錄 
  4. Home ——前臺項目目錄 
  5.      * Common ——公共文件目錄,如公共類,函數。 
  6.      * Conf ——項目配置目錄。 
  7.      * Lang ——語言包 
  8.      * Lib ——類庫目錄 
  9.           ** Action ——控制器目錄 
  10.           ** Model ——模型目錄。 
  11.      * Tpl ——模板目錄 
  12. Admin ——后臺管理項目目錄。 
  13. index.php ——home項目入口文件。 
  14. admin.php ——admin項目入口文件。 

此結構基本看不出“模塊”的概念,連前臺與后臺都需要分成兩個項目(Home,Admin)來劃分.

## 使用模塊分組

ThinkPHP ——框架目錄

  1. App ——項目目錄 
  2.      * Common ——公共文件目錄 
  3.           ** Home ——Home分組的公共文件。 
  4.      * Conf ——配置目錄 
  5.      * Lib ——類庫目錄 
  6.           ** Action ——控制器目錄 
  7.                *** Home ——Home分組控制器 
  8.           ** Model ——模型目錄 
  9.                *** Home ——Home分組模型目錄。 
  10.      * Tpl ——模板目錄 
  11.           ** Home ——Home分組模板目錄 
  12. Public ——略 
  13. Uploads ——略 
  14. index.php ——入口文件。 

同樣看不出“模塊”的概念,使用“分組”概念把上面前后臺要分兩個項目的結構組合成“分組”的結構.

小結:ThinkPHP 的目錄結構并不利于模塊化,因為一個模塊的若干文件都需要分散于多個不同的目錄下,又或者,把一個模塊做成一個“項目”或“分組”.

# Fleaphp 框架

  1. App ——項目目錄 
  2.      * Admin ——后臺文件 
  3.           ** Controller ——控制器目錄 
  4.           ** Model ——模型目錄 
  5.           ** View ——模板目錄。 
  6.      * Front ——前臺文件(下級目錄結構與 App/Admin 相似) 
  7. FLEA ——框架目錄 
  8. Stuff ——靜態資料文件目錄 
  9.      * css 
  10.      * images 
  11.      * js 
  12. index.php ——前臺入口文件。 
  13. admin.php ——后臺入口文件。 

此框架年代久遠,其主頁已不存在,在不看源代碼的情況下,只能通過網上一些零散的文章拼湊出它的目錄結構.

此結構與 ThinkPHP 的結構基本相似.

# QeePHP 框架

  1. _code ——保存所有的代碼,以及配置文件等。 
  2.      * app ——項目目錄 
  3.           * controller ——控制器目錄 
  4.           * model ——模型目錄 
  5.           * view ——模板目錄 
  6.      * config ——配置文件目錄 
  7.      * lib ——第三方庫文件 
  8. _devel ——保存應用程序開發過程中使用到的文件(如數據庫安裝SQL)。 
  9. css 
  10. js 
  11. img 
  12. index.php ——入口文件 

明確地使用 lib 目錄保存第三方庫文件(yaf 框架也有 library 目錄,但其用戶手冊中并沒明確說明是否用于保存第三方庫文件)。

其余跟 FleaPHP 相似.

# CodeIgniter 2.1.0 框架

  1. application ——項目目錄 
  2.      * controllers ——控制器(用戶手冊中表示可以建立子目錄對控制器進行劃分) 
  3.      * models ——模型目錄。(用戶手冊中表示支持子目錄劃分) 
  4.      * views ——模板目錄(用戶手冊中表示支持子目錄劃分) 
  5. system ——框架目錄 
  6. index.php ——入口文件 

比較簡單的一個目錄結構,且 MVC 三個目錄好像都支持自定義任意層級的子目錄結構,因為其加載代碼是這樣的:

$this->load->view('folder_name/file_name');

$this->load->model('blog/queries');

查看用戶手冊,發現 CI 中也有類似于 ThinkPHP 的“模塊分組”的概念,目錄結構可以是:

applications/foo/controllers/ ——foo 分組

applications/bar/controllers/ ——bar 分組。

# Zend 框架

  1. application ——項目目錄 
  2.      * controllers ——控制器目錄 
  3.      * models ——模型目錄 
  4.      * views —— 模板目錄 
  5. library 
  6.      * Zend Framework 
  7. public ——公共資源目錄 
  8.      * images 
  9.      * scripts 
  10.      * styles 

通過幾個框架的目錄結構對比,可以發現框架的目錄結構基本都很相似.

# 小結

上述目錄結構,大概可分成兩類:

1. 以“模塊”概念為第一級目錄劃分的結構;

2. 以 MVC 結構為第一級目錄劃分的結構。

以“模塊化”的角度來看,以“模塊”為第一級目錄劃分更有利于模塊化,因為并不是所有模塊都使用 MVC 三層結構(比如一個用于生成壓縮包的功能模塊),并且更利于模塊內文件的管理。

另外:單一入口可使目錄結構更靈活多變,應優先考慮使用單一入口結構。

使用一個 lib 目錄保存所有第三方代碼可方便地區分項目代碼與第三方代碼,源代碼版本管理時也能方便地把第三方代碼排除在外。

使用一個 public 目錄保存需要被瀏覽器直接請求的文件,其余文件放在 public 目錄之外,可以避免瀏覽器直接訪問其它文件(如類定義文件).

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲跨种族黑人xxx| 久久久久成人精品| 欧美日本中文字幕| 欧美一级淫片aaaaaaa视频| 亚洲精品一区久久久久久| 欧美精品久久久久久久久| 日韩精品视频在线免费观看| 国产狼人综合免费视频| 日本aⅴ大伊香蕉精品视频| 在线免费看av不卡| 久久久极品av| 国产精品美女999| 亚洲午夜精品久久久久久性色| 亚洲丁香婷深爱综合| 亚洲香蕉伊综合在人在线视看| 国产精品69久久久久| 国产欧美中文字幕| 亚洲二区在线播放视频| 亚洲国产精品字幕| 欧美丝袜一区二区三区| 亚洲国产小视频在线观看| 97视频色精品| 亚洲人成人99网站| 国产精品无码专区在线观看| 国产精品久久久久7777婷婷| 国产视频久久久久| 日本一区二区三区在线播放| 91网在线免费观看| 欧美最猛性xxxxx免费| 亚洲成人久久电影| 日韩欧美aⅴ综合网站发布| 亚洲大尺度美女在线| 久久久精品2019中文字幕神马| 国产午夜精品美女视频明星a级| 亚洲黄色在线观看| 韩国v欧美v日本v亚洲| 日韩综合中文字幕| 日韩中文视频免费在线观看| 日韩欧美在线播放| 搡老女人一区二区三区视频tv| 国产精品国产三级国产aⅴ浪潮| 亚洲午夜未删减在线观看| 亚洲奶大毛多的老太婆| 精品久久久久久久久久久久久| 亚洲自拍偷拍区| 亚洲男人天堂2019| 亚洲人成在线播放| 欧美日韩亚洲成人| 欧美性猛交丰臀xxxxx网站| 在线观看欧美成人| 日韩免费视频在线观看| 亚洲一区二区三区四区视频| 欧美国产高跟鞋裸体秀xxxhd| 日韩成人高清在线| 亚洲精品99999| 亚洲欧美日韩另类| 欧美肥老妇视频| 亚洲第一av网| 欧美精品video| 成人免费高清完整版在线观看| 成人午夜在线影院| 亚洲欧美成人网| 搡老女人一区二区三区视频tv| 最新亚洲国产精品| 国产午夜精品视频| 国产97在线播放| 欧美激情亚洲一区| 欧美最猛性xxxxx免费| 欧美中文在线观看国产| 欧美老女人xx| 色噜噜国产精品视频一区二区| 亚洲乱码一区av黑人高潮| 91久久精品美女高潮| 亚洲香蕉在线观看| 国内精品久久久久久| 黑丝美女久久久| 日韩福利伦理影院免费| 庆余年2免费日韩剧观看大牛| 中文亚洲视频在线| 美女av一区二区三区| 亚洲人永久免费| 中文字幕在线视频日韩| 日本一区二区在线播放| 欧美日本国产在线| 日韩中文字幕亚洲| 亚洲精品一区二三区不卡| 91在线中文字幕| 欧美日韩国产黄| 日韩av一区二区在线观看| 97色在线播放视频| 国产精品午夜一区二区欲梦| 亚洲国产小视频在线观看| 尤物九九久久国产精品的特点| 最近2019年好看中文字幕视频| 欧美区在线播放| 久久这里有精品| 精品国产欧美一区二区三区成人| 亚洲精品乱码久久久久久金桔影视| 91精品国产自产在线观看永久| 亚洲第一区在线| 国产精品一区专区欧美日韩| 自拍视频国产精品| 日本久久久久久久久| 欧美成人激情视频免费观看| 欧美性生交xxxxxdddd| 992tv成人免费视频| 日韩av日韩在线观看| 亚洲人成人99网站| 在线精品播放av| 日韩中文字幕欧美| 久久精品国产亚洲精品2020| 色狠狠av一区二区三区香蕉蜜桃| 国产一区二区三区在线播放免费观看| 日韩一区二区三区国产| 色偷偷亚洲男人天堂| 国产精品久久久久久久久免费| 国产精品电影网| 欧美成人黄色小视频| 97色伦亚洲国产| 国产一区二区三区高清在线观看| 国产91精品在线播放| 欧美精品久久久久久久久| 中文字幕精品在线| 成人黄色生活片| 日本最新高清不卡中文字幕| 欧美成人久久久| 国产精品电影观看| 亚洲欧美国产制服动漫| 欧美高清视频一区二区| 久久精品精品电影网| 亚洲精品资源在线| 国产一区二区日韩精品欧美精品| 精品精品国产国产自在线| 日韩欧美精品免费在线| 日本19禁啪啪免费观看www| www.亚洲一区| 日韩欧美高清在线视频| 欧美日韩国产精品一区二区不卡中文| 米奇精品一区二区三区在线观看| 国产视频在线观看一区二区| 伊人久久五月天| 亚洲国产另类 国产精品国产免费| 国产精品美女久久久久久免费| 中文字幕亚洲欧美日韩2019| 亚洲美女在线视频| 日韩av色综合| 久久99国产精品久久久久久久久| 日韩欧美国产视频| 亚洲精品成a人在线观看| 日韩av片免费在线观看| 国内精品久久久久| 亚洲精品国产精品国自产在线| 国产精品欧美一区二区三区奶水| 成人欧美一区二区三区黑人孕妇| 欧美大片第1页| 亚洲欧美国产高清va在线播| 日韩美女视频在线观看| xxav国产精品美女主播| 色综合天天综合网国产成人网| 欧美wwwxxxx| 中文字幕日韩av电影| 欧美国产日韩二区| 欧美麻豆久久久久久中文| 成人黄色片网站|