日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

对drupal的理解【转】

發(fā)布時間:2023/12/29 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 对drupal的理解【转】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫本文是想跟剛用drupal的朋友,分享一下心得,國內(nèi)用drupal的太少了,希望大家能好好交流. 希望幾分鐘看完后你能馬上上手drupal,至少能理解hook,api,theme,module,cck,hack core

別將drupal想復(fù)雜了,所有的東西都能推理出來的,即便你不太懂drupal,你只要懂一點基礎(chǔ)的PHP就行了. 我以前的文章說過,學(xué)習(xí)drupal,要掌握用php的print_r,要了解php的array,現(xiàn)在多了一點,要會php的include文件.

1.drupal是PHP寫的,所以php能做的drupal都能做,PHP不能做的,drupal當(dāng)然也不行的. 2.drupal是強(qiáng)大,但強(qiáng)大說明很難上手,原因在于其機(jī)制. 上兩個是廢話

3.你應(yīng)該看了很多drupal的介紹(浪費時間地對比drupal和joomla,wordpress了吧),總該看過hook,api,theme,module,cck,hack core這些關(guān)鍵詞了吧 好吧,要理解drupal,關(guān)鍵要搞明白什么是module,其余幾個關(guān)鍵詞其實都來源于module 理解下面一句話,你就認(rèn)識drupal了 php要運行起來總得要*.php文件吧,drupal也一樣,php的邏輯很復(fù)雜的時候要分開幾個php來寫吧,純PHP文件時將這些php合在一起的時候用的是include 或者 require. drupal也一樣,但drupal 默認(rèn)include的文件不是*.php而是*.module 所以,只要你將想要運行的內(nèi)容放在*.module里了,drupal就能自己去include了,不用你自己手寫一句include xxxx.module 4.但是這個*.module有些特別,他幾乎只接受function(中文名叫函數(shù).深入還接受什么,新手不懂也罷),所以你可以將所有你以前寫過的function全都塞進(jìn)*.module里,完全不用改名(和已經(jīng)有的drupal函數(shù)重名除外)

5.什么是API?所有的drupal function都叫api,所以別將api想得太復(fù)雜,因為api就是*.module(還有些include/*.inc文件)里的function.不過現(xiàn)實討論中往往指的是drupal內(nèi)置的函數(shù),但你裝了別的module后,例如CCK,VIEWS,這些模塊的內(nèi)部函數(shù)你也是可以用的,他們其實也是API.

6.什么是hook,我剛學(xué)drupal的時候也非常不想看到這個詞,怕了,感覺很復(fù)雜,終于有一次我必須了解hook的時候,我才發(fā)現(xiàn),奶奶的,原來如此簡單.相信我,你在寫PHP的時候,其實寫過無數(shù)的”hook!”: hook也是function , 也是放在module文件中的,不過命名特別一點. hook機(jī)制就是A函數(shù)自動調(diào)用B函數(shù). 你會發(fā)現(xiàn)drupal有很多函數(shù)都這樣: function moduleName_xxxx(){ .. module_involve(XXXX);//不知有沒有記錯了

} 看到這東西,就是定義了一個hook,就是說你在某*.module如果按drupal的命名規(guī)則定義了一個function,上面的函數(shù)只要一執(zhí)行的時候,就會自動執(zhí)行你的函數(shù)了.

7.drupal有很多內(nèi)部函數(shù),這些內(nèi)部函數(shù)默認(rèn)在啟動的時候就調(diào)用,所以你只要在這些一定會運行的函數(shù)里加入你自己要運行的邏輯,這不就是一個hook了么?當(dāng)然,這樣做叫hack core,比較dirty,所以drupal就蛋疼地增加了一個叫module的機(jī)制告訴大家:你們只要按某些命名規(guī)則來辦事,就不用每次都hack core了!所以其實hook,api,hack core也就那么一回事

8.例如最常用的hook_nodeapi,就是說當(dāng)drupal要顯示一篇文章的時候,這個hook_nodeapi函數(shù)就一定會執(zhí)行!所以這時你也要想你的函數(shù)能執(zhí)行,你要么就直接啥也不管找到hook_nodeapi的原函數(shù),將你的代碼直接復(fù)制上去,要么就按drupal的命名規(guī)則定義一個叫xxxName_nodeapi的函數(shù).如此簡單,這樣的同時,你就創(chuàng)建了一個API,也創(chuàng)建了一個moduel drupal的機(jī)制你就明白小半了!

9.drupal試圖(事實上)用一個根目錄下的一個index.php來運行所有請求,所以你用屁股想也知道,你的邏輯(代碼)要能跑,必定得被這個index.php引用(include或require)上.所以麻,你不想搞明白drupal的機(jī)制,直接在這個index.php上動手腳就行了.這就是我的drupal anywhere的思想來源.

最后:凡是想不明白drupal為什么XXX的,別想drupal,想想要是你自己寫php,你會怎么做,想著想著你就會明白drupal的機(jī)制了,就算差一點也差不了太多了. 中國人的舉一反三永遠(yuǎn)是無敵的!

http://www.trackself.com/archives/1611.html

總結(jié)

以上是生活随笔為你收集整理的对drupal的理解【转】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。