亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Drupal模塊目錄組織方式分析

        2013-12-31 00:00:00陳浩

        摘 要:drupal系統(tǒng)目錄下模塊可以放在很多目錄下,drupal會(huì)按照一定的次序掃描所有的符合規(guī)范的目錄下的模塊。但是并不意味著可以隨意放置模塊,比如系統(tǒng)的modules目錄下放的都是核心自帶的模塊,為了以后的升級(jí)方便,則不應(yīng)該將模塊放在/modules目錄里面,本文就drupal的模塊放置問(wèn)題做出了詳細(xì)的闡述分析。

        關(guān)鍵詞:多站點(diǎn);單站點(diǎn);目錄組織;drupal

        中圖分類號(hào):TP311.52

        1 多站點(diǎn)模式

        假設(shè)建站方式是以Drupal多站點(diǎn)方式運(yùn)作的,通過(guò)多個(gè)網(wǎng)站共享一套Drupal代碼,這時(shí)我們的第三方模塊一般都放在/sites/all/modules目錄。而其他模塊則分網(wǎng)站放到/sites/網(wǎng)站名/modules目錄下,如果你的自定義模塊想要跨多站共享的話,也需要放到/sites/all/modules里,這時(shí)為了區(qū)分,你需要在/sites/all/modules目錄里建子目錄,例如contrib代表第三方模塊目錄,custom代表自定義共享模塊目錄。

        當(dāng)然Drupal多站點(diǎn)其實(shí)還有一種不共享代碼,只共享數(shù)據(jù)庫(kù)的情況,但這與本文要討論的主題無(wú)關(guān),就不做過(guò)多說(shuō)明了。

        2 單站點(diǎn)模式

        單站點(diǎn)模式是最常見(jiàn)的情況,主要就是要用一套Drupal代碼建一個(gè)站,如果是一個(gè)比較大型的網(wǎng)站,需要使用的模塊眾多,則就需要做一些規(guī)劃了,在實(shí)際開(kāi)發(fā)過(guò)程中,可以通過(guò)以下分析具體實(shí)現(xiàn)。(下文的目錄都放在/sites/all/modules目錄下,以保證/sites目錄下的站點(diǎn)目錄干凈清爽)

        contrib

        毫無(wú)疑問(wèn),這個(gè)目錄是放置第三方模塊的。

        custom_contrib

        放置的也是第三方模塊,但是有一點(diǎn)點(diǎn)與實(shí)際的需求不符,又沒(méi)有提供足夠的鉤子做擴(kuò)展,所以實(shí)現(xiàn)就需要硬編碼了,放在這個(gè)目錄可以提醒哪些模塊是被修改過(guò)的,升級(jí)時(shí)要多加小心,不要遺漏之前打過(guò)的補(bǔ)丁。

        custom

        用于存放自定義模塊。

        features

        存放我們經(jīng)過(guò)規(guī)劃從后臺(tái)導(dǎo)出的一批features,每個(gè)feature一般是要圍繞一個(gè)功能特性進(jìn)行打包,不過(guò)如何規(guī)劃features每個(gè)人可能有不同的理解,只要能有清晰的思路,并且以后便于維護(hù)即可。

        development

        存放所有開(kāi)發(fā)相關(guān),而與網(wǎng)站業(yè)務(wù)邏輯無(wú)關(guān)的模塊,比如devel, schema等,這些模塊也不一定是只能在本地使用,但一般是不建議在生產(chǎn)服務(wù)器啟用的,將這些模塊放在一起,對(duì)生產(chǎn)服務(wù)器的問(wèn)題排查和優(yōu)化有一定的幫助。

        localhost

        這是一個(gè)特殊的目錄,里面存放的是不放入版本控制的模塊,可以是第三方模塊,也可以是自定義模塊,實(shí)際操作時(shí)可以在里面繼續(xù)細(xì)分一些子目錄,但localhost目錄則需要根據(jù)版本控制軟件設(shè)置目錄的ignore屬性,這樣不管里面放了多少代碼都不會(huì)因?yàn)檎`操作上傳到代碼庫(kù)。

        3 第三方模塊

        之所以有第三方模塊放到localhost是因?yàn)樵趫F(tuán)隊(duì)開(kāi)發(fā)過(guò)程中,不能任意的提交模塊到版本庫(kù),而有些開(kāi)發(fā)相關(guān)的模塊對(duì)本地開(kāi)發(fā)又很有幫助,所以可以將版本庫(kù)里沒(méi)有,但對(duì)實(shí)現(xiàn)有用,對(duì)其它未必有用的第三方模塊,主要是開(kāi)發(fā)相關(guān)的模塊,放到localhost下,以提高本地開(kāi)發(fā)調(diào)試效率。

        4 自定義模塊

        自定義模塊放到localhost當(dāng)然也是不希望代碼被上傳到版本庫(kù),但有這樣的自定義模塊的意義當(dāng)然也是為了本地開(kāi)發(fā)效率的提高,這也是一些開(kāi)發(fā)相關(guān)的模塊,但大多數(shù)情況下,都是對(duì)業(yè)務(wù)邏輯和數(shù)據(jù)做一些CRUD,比如一鍵插入刪除測(cè)試數(shù)據(jù),比如一鍵刪除近期測(cè)試用戶等等,這對(duì)本地開(kāi)發(fā)效率有極大的提升,或者可以保證本地?cái)?shù)據(jù)庫(kù)的精簡(jiǎn)。

        not_in_use

        這個(gè)目錄里的模塊來(lái)自于custom目錄,因?yàn)橐恍┳远x的模塊可能因?yàn)槟承┰?,比如需求變更,模塊功能不再需要,這時(shí)如果封裝良好的話,需要把模塊禁用掉,但由于自定義代碼里包含許多業(yè)務(wù)邏輯,刪除肯定不是一個(gè)好辦法,以后可能需要把這個(gè)功能拿回來(lái)重新使用,或者需要參考里面的代碼,所以實(shí)際會(huì)需要把這樣的模塊放到一個(gè)單獨(dú)的目錄,從而哪些模塊正在被使用,哪些模塊目前已經(jīng)不用了,就是一目了然的了。

        5 Drupal模塊的存儲(chǔ)性能

        眾所周知,drupal的核心部分是node,也是數(shù)據(jù)庫(kù)性能的關(guān)鍵之處,隨著內(nèi)容的不斷增長(zhǎng),node數(shù)據(jù)集就會(huì)變得較為龐大,尤其是當(dāng)drupal包含多種內(nèi)容類型,也就是多種nodetype,Node的存儲(chǔ)問(wèn)題就變得尤為嚴(yán)重,Drupal6和Drupal7基本差不多,隨著網(wǎng)站的數(shù)據(jù)增長(zhǎng),都會(huì)遇到類似的問(wèn)題。同時(shí),有些模塊,也會(huì)以把一些其他內(nèi)容擴(kuò)展到node的存儲(chǔ)中,如content_profile, 把profile存儲(chǔ)到node中,taxonomy_node把一個(gè)term也存儲(chǔ)到node中等等。

        這樣的結(jié)果就是node數(shù)據(jù)會(huì)不斷的增長(zhǎng),變得巨大而不易維護(hù)和管理,數(shù)據(jù)存儲(chǔ)的性能問(wèn)題會(huì)逐漸成為整個(gè)網(wǎng)站的瓶頸。

        多站點(diǎn)的模式是把每一種類型的node單獨(dú)存儲(chǔ),這樣,與把所有node都存儲(chǔ)在一個(gè)中心的情況相比,存儲(chǔ)的壓力會(huì)大大減小,從而提高網(wǎng)站的水平擴(kuò)展性,解決了單站點(diǎn)的drupal性能問(wèn)題。

        一般來(lái)說(shuō),不要用content_profile等模塊,假如有1萬(wàn)用戶,如果一個(gè)用戶有5個(gè)profile,那么就會(huì)給node表增加5萬(wàn)條數(shù)據(jù),如果是一個(gè)以用戶為中心的網(wǎng)站,那么用戶的profile就會(huì)很大,并且content_profile的查詢效率比較低,至少需要關(guān)聯(lián)3個(gè)表的查詢。如果把每種nodetype單獨(dú)存儲(chǔ),那content_profile也算是一種node類型,也很好的解決了content_profile模塊的使用問(wèn)題。

        具體方式是首先把用戶獨(dú)立出來(lái),做一個(gè)user站點(diǎn)。這個(gè)站點(diǎn)可以使用content_profile,可以把所有的用戶信息都存儲(chǔ)在node中。

        接下來(lái),可以把所有數(shù)據(jù)較大的node類型分開(kāi)到不同站點(diǎn)中,比如story站,比如page站,這些站點(diǎn)通過(guò)drupal的multiple站點(diǎn)的架構(gòu)共享user站的用戶信息,如user表,role表等。

        6 總結(jié)

        從以上目錄劃分可以看出,就是在通過(guò)多放幾個(gè)子目錄讓代碼結(jié)構(gòu),主要是模塊結(jié)構(gòu),變得更有條例,在實(shí)際項(xiàng)目中,由于業(yè)務(wù)邏輯的不同,絕對(duì)相信大家有需要新建除了上文提到目錄以外的其他目錄,而且根據(jù)項(xiàng)目大小的不同,以上的目錄建議也不是都必須存在的,大家可以根據(jù)實(shí)際情況進(jìn)行調(diào)整。

        總之由于網(wǎng)站一般都需要長(zhǎng)期維護(hù),而隨著時(shí)間的推移很多項(xiàng)目相關(guān)的信息你可能都有所遺忘,因此我們開(kāi)發(fā)過(guò)程中總要想一些辦法讓今后項(xiàng)目可以比較容易的理解和維護(hù),從小的方面是代碼符合規(guī)范,注釋良好,代碼精煉易懂,從大的方面就是項(xiàng)目的目錄結(jié)構(gòu),技術(shù)架構(gòu),文檔,任務(wù)管理等等。

        參考文獻(xiàn):

        [1]張志剛.用Drupal多站點(diǎn)架構(gòu)來(lái)解決Drupal存儲(chǔ)的性能問(wèn)題[J].計(jì)算機(jī)研究與發(fā)展,2012.

        [2]邱暉.漫談Drupal性能優(yōu)化[J].計(jì)算機(jī)工程與應(yīng)用,2013.

        [3]彭波.Varnish構(gòu)建高負(fù)載Drupal網(wǎng)站[J].電腦知識(shí)與技術(shù),2012.

        [4]李貝.DRUPAL系統(tǒng)A/BTEST解決方案[J].電子世界,2012.

        作者簡(jiǎn)介:陳浩(1979.9-),男,廣州人,講師,實(shí)驗(yàn)師,碩士,主要從事計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的研究與應(yīng)用。

        久久青青草原国产精品最新片| 麻豆一区二区三区蜜桃免费| 亚洲旡码a∨一区二区三区| 久久久久亚洲精品天堂| 午夜在线观看一区二区三区四区 | 日韩久久久久中文字幕人妻| 最新亚洲视频一区二区| 99re6在线视频精品免费下载| 狠狠色成人综合网| 伊人久久一区二区三区无码| 在线播放偷拍一区二区| 亚洲av成人综合网成人| 亚洲欧美激情在线一区| 国产aⅴ天堂亚洲国产av| 少妇高潮免费在线观看| 无码乱肉视频免费大全合集| 毛茸茸的中国女bbw| 欧美中出在线| 久久精品一区二区熟女| 18黑白丝水手服自慰喷水网站| 亚洲欧美国产日韩制服bt| 亚洲中文字幕在线第二页| 亚洲综合偷自成人网第页色 | 亚洲av日韩专区在线观看| 在线观看国产一区亚洲bd| 国产又湿又爽又猛的视频| 欧美在线资源| 91免费在线| 成人国产精品高清在线观看| 国产一区三区二区视频在线观看| 小妖精又紧又湿高潮h视频69| 波多野结衣av手机在线观看 | 亚洲 欧美 综合 另类 中字 | 国内揄拍国内精品少妇国语| 91精品国产无码在线观看| 国产亚洲精品一区在线| 极品嫩模高潮叫床| 国产成人77亚洲精品www| 日本老熟女一区二区三区| 久久99国产精品久久99| 中文字幕影片免费在线观看|