五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > drupal的由來及優(yōu)點

drupal的由來及優(yōu)點

文章來源:365jz.com     點擊數(shù):255    更新時間:2009-09-19 10:32   參與評論

1.Drupal的由來:

Drupal應該翻譯成什么呢?呵呵,覺得還是翻譯為“水滴”比較好。
Drupal這個詞其實是荷蘭語Druppel的英語發(fā)音,而Druppel在荷蘭語里面是Drop也就是水滴的意思。Drupal的編寫者最初選擇這個詞實在是意外,他本來想注冊一個名為“Dorp”的域名,Dorp在荷蘭語里是“小村莊”的意思,英語里其實也有這個名詞,但是他一不小心犯了個錯誤,于是就注冊成了Drop,于是也就有了后來的Drupal。呵呵,所以漢語翻譯成“水滴”還是蠻貼切的,聽起來也不錯了。

2.什么是Drupal?

有的人把Drupal當作是blog系統(tǒng),我一開始也是 這樣認為的,其實這只是Drupal的一方面的應用,Drupal是一個功能強大的content manage system(cms),在功能設計上它仿照了phpnuke,xoops等的模塊化方式,界面上仿照了blog模式。這個程序以極少的代碼實現(xiàn)了非常強大的功能。很多人用“神奇”兩個字來形容它,它是一個完全開放源代碼的程序,所以吸引了眾多PHP愛好者的目光,很多PHP高手參與了它的開發(fā)行列中來了,開發(fā)速度非常塊,幾乎兩個月出一個新版本,modules和skins也越來越多。從官方站點有時上千人的在線情況就可以看出它的受歡迎程度。

3.Drupal的優(yōu)點如下:
001-- 搜索引擎友好的URL

002-- Drupal有一個優(yōu)秀的模塊化結構,提供了許多模塊,包括短消息、個性化書簽、網(wǎng)站管理、Blog、日記、電子商務、電子出版、留言簿、Job、網(wǎng)上電影院、論壇、投票等模塊。Drupal模塊的下載、安裝、定制非常方便

003-- Drupal提供了強大的個性化環(huán)境,每個用戶可以網(wǎng)站內容和表現(xiàn)形式進行個性化設置

004-- Drupal提供了基于角色的權限系統(tǒng),沒有必要對每個用戶進行授權,只需要對角色進行授權

005-- Drupal提供的站內搜索系統(tǒng)能對站內的所有內容進行索引和搜索

006-- Drupal的模板系統(tǒng)將內容和表現(xiàn)分離,可以很方便地控制網(wǎng)站的外觀+ Drupal提供內建的新聞聚合工具 + 提供完善的站點管理和分析工具
007-- Drupal的Caching機制能有效減少數(shù)據(jù)庫查詢次數(shù),從而提高站點性能,降低服務器負荷

1. 模塊化系統(tǒng)(Module system)。

Drupal把各個具有獨立功能的部分抽象為模塊,各個模塊(除核心模塊)只要按照事先巧妙設計好的統(tǒng)一規(guī)范來實現(xiàn)接口(http: //api.drupal.org/)------這些接口在drupal中表現(xiàn)為按照特定規(guī)則命名的PHP代碼文件、特定PHP代碼文件內按照特定規(guī)則命名的PHP函數(shù)、特定PHP函數(shù)內根據(jù)特定參數(shù)來執(zhí)行相應功能的PHP代碼塊-------就能在核心代碼的調度下實現(xiàn)模塊自有的功能、在模塊之間自動進行交互、通信,這樣使得整個系統(tǒng)的功能擴展更靈活更規(guī)范。各個模塊之間的功能相對獨立,單個模塊內部的變動一般不會對其他模塊原有功能造成影響,單個模塊的問題一般不會導致整個系統(tǒng)不可用,這樣就可以大大降低系統(tǒng)開發(fā)和維護的成本。
Drupal 模塊化的安裝使用也很方便,只要將相應文件復制到modules目錄下,就可以在'管理-設置'里面方便地開啟使用了。

2. 鉤子機制(Hooks system)

鉤子機制其實是drupal模塊化系統(tǒng)的關鍵部分。Drupal模塊化系統(tǒng)基于一個"鉤子"的概念,一個鉤子是一個以foo_bar() 方式命名的php函數(shù)。其中foo是模塊的名字,bar是鉤子的名字。每個鉤子都定義了一系列的參數(shù)和返回類型,執(zhí)行特定的功能。例如鉤子 myblog_load($node)會在系統(tǒng)載入模塊myblog對應的節(jié)點(node)信息時候執(zhí)行,把模塊對應的節(jié)點特定信息附加到節(jié)點中去。鉤子可以使得模塊(module)可以在drupal核心的調度之下進行交互,包括和核心本身進行交互。Drupal的模塊機制大大簡化的實現(xiàn)模塊具體功能的開發(fā)、維護效率,因為你只需要實現(xiàn)特定的鉤子函數(shù)就能獲得對應的功能,而根本不用關心這些函數(shù)是如何被調用、如何與系統(tǒng)交互。

3. 內容類型面向節(jié)點

這個術語是借用編程語言中面向對象的概念。在編程語言中,面向對象編程是指在編寫應用程序時候,以對象為基本單位,在基本對象(object)的基礎上,通過封裝、繼承、抽象、多態(tài)、重載等方式,建立起整個復雜的應用程序架構。面向對象編程通過把客觀世界抽象為對象的組合及其相互交互,有效地降低了程序開發(fā)的抽象性和復雜度。
drupal把所有的內容類型都看作節(jié)點,各種內容類型都是在基本節(jié)點的基礎上進行擴展而實現(xiàn)的。例如你的drupal站點有一個叫做供應(supply)的內容類型,那么這個內容類型就自動有了基本內容類型(node)的屬性和方法了,然后你可以在這個基礎之上通過添加少量額外的屬性和方法來實現(xiàn)supply了。這跟面向對象的概念不謀而合,因此我把它稱為drupal的內容類型面向節(jié)點特性。
把所有的內容類型當作節(jié)點的好處是,這樣它們就可以基于相同的底層數(shù)據(jù)結構了。對于開發(fā)者來說,這意味著你可以對所有的內容以同樣的代碼方式進行許多操作??梢栽诠?jié)點上非常容易的進行一組操作,并且你也可以為你自己的節(jié)點類型添加許多額外的功能。由于所有的內容都是節(jié)點,所以所有的內容都可以輕易的使用 drupal內置的支持對內容的搜索、創(chuàng)建、編輯和管理等操作。這種內容一致性對于客戶端用戶的體驗來說也同樣明顯。由于創(chuàng)建、編輯和刪除節(jié)點的表單擁有一個類似的外觀,這樣就保持了用戶體驗的一致性。
不過所有內容類型均基于node,我認為也有缺點,就是drupal核心在執(zhí)行node相應鉤子函數(shù)的時候,會嘗試執(zhí)行所有節(jié)點類型對應的鉤子函數(shù),這樣一旦內容類型增多,系統(tǒng)性能就會直線下降。

4. 表單API(Form API)
Drupal提供了一個應用程序接口(API)來生成、驗證、處理HTML表單。表單的生成、驗證、處理函數(shù)都是按照約定的命名規(guī)則進行命名,例如內容類型myblog的表單生成函數(shù)默認為myblog_form(&$node,&$param),對應的表單驗證函數(shù)為 myblog_form_validate($form_id, $form_values),而表單處理函數(shù)為myblog_form_submit($form_id, $form_values)。drupal核心會在恰當?shù)臅r候根據(jù)命名規(guī)則去執(zhí)行相應的函數(shù)去生成、驗證、處理表單。
另外,表單API將表單抽象為一個關于屬性和值的嵌套數(shù)組。在生成頁面時,表單呈現(xiàn)引擎會在適當?shù)臅r候將數(shù)組呈現(xiàn)出來。
表單API的作用不但可以大大簡化站點開發(fā)中最常見的表單生成、驗證、處理的工作,更加大大提高了對表單變更的適應能力。

5. 主題機制(Theme system)
Drupal支持為站點配置不同的主題。一個主題是由一組展示你站點外觀的文件------主要是模板文件------組成。模板文件按照約定的命名規(guī)則來進行命名。例如node.tpl.php文件為默認的節(jié)點內容顯示模板文件,而node-supply.tpl.php為節(jié)點內容supply的內容顯示模板文件;又如page.tpl.php為默認的頁面內容顯示模板文件,而page-supply.tpl.php為模塊supply的頁面內容顯示模板文件。你甚至可以在template.php中自定義自己模板文件來實現(xiàn)特定的內容顯示模板(參考 http://api.drupal.org/api/group/themeable)。
模板機制的好處是你可以把站點數(shù)據(jù)處理和數(shù)據(jù)顯示完全分離,這樣就可以把開發(fā)人員的精力從繁瑣的內容顯示格式的工作中解脫出來,專注于實現(xiàn)站點的業(yè)務邏輯功能。其次,模板機制也使得我們可以輕易的改善站點的外觀而不需要調整現(xiàn)有程序。

6. 菜單機制(Menu system)
Drupal通過菜單鉤子hook_menu來實現(xiàn)它的菜單機制。只要在模塊中的hook_menu鉤子函數(shù)中按照約定的規(guī)則來定義菜單,drupal核心就會在站點界面中實現(xiàn)相應的菜單(具體請參見http://api.drupal.org/api/group/menu/)。通過菜單機制,開發(fā)者可以輕易的設計和調整站點的菜單系統(tǒng),大大解放了開發(fā)者的勞動。
6. Ajax支持
Drupal內置對jQuery和JSON的支持,jQuery和JSON的完美結合,使得Drupal有了一個輕量級、高效的AJAX實現(xiàn),大大提高了編寫AJAX應用的效率。

如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點擊進入論壇

發(fā)表評論 (255人查看0條評論)
請自覺遵守互聯(lián)網(wǎng)相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號