乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      從頭學(xué)習(xí)Drupal--基本架構(gòu)一 | Drupal China

       gaofrank 2008-10-17

      從頭學(xué)習(xí)Drupal--基本架構(gòu)一

      xeopn 于 周五, 2008-06-20 16:05 提交。

      前面學(xué)習(xí)了Drupal的一些基本概念, 其實(shí)我們?cè)跇?gòu)建一個(gè)系統(tǒng)的時(shí)候, 一般都需要從兩個(gè)方面來(lái)考慮問(wèn)題:

      1. 業(yè)務(wù)模型
      2. 也就是領(lǐng)域模型, 是面向我們所要解決的問(wèn)題域所構(gòu)建的模型, 前面我們說(shuō)的關(guān)于內(nèi)容描述方面的幾個(gè)概念, 其實(shí)就是對(duì)領(lǐng)域內(nèi)概念,元素進(jìn)行概括,抽象得出的業(yè)務(wù)模型基類. 構(gòu)建良好的業(yè)務(wù)模型, 能有效地將問(wèn)題域中的對(duì)象進(jìn)行分類,綜合, 理清他們間的關(guān)聯(lián), 闡明他們相互間的協(xié)作, 并為最終形成系統(tǒng)的對(duì)象數(shù)據(jù)模型打下基礎(chǔ). 我們所說(shuō)的面向?qū)ο?OO), 其實(shí)主要就是一個(gè)建模的思想.

      3. 系統(tǒng)架構(gòu)
      4. 它是從系統(tǒng)的實(shí)現(xiàn)角度出發(fā)的, 涉及的概念更多, 它主要是用來(lái)解決系統(tǒng)如何構(gòu)建, 以實(shí)現(xiàn)業(yè)務(wù)的需求, 它還涉及系統(tǒng)的健壯性, 性能, 可擴(kuò)展性, 可操作性, 可獲得性等一些其他質(zhì)量屬性. 比如經(jīng)典的MVC架構(gòu), WEB的二層, 三層, 四層架構(gòu), 這些都是架構(gòu)實(shí)現(xiàn)的一種形式.

      這兩方面相輔相成, 任何一方面設(shè)計(jì)不好都將極大的影響系統(tǒng)的質(zhì)量(Quality). 很多人在系統(tǒng)設(shè)計(jì)時(shí)出于某種主觀或客觀原因要么從單方面考慮, 要么是把兩者混淆起來(lái)考慮, 這都不是好的系統(tǒng)設(shè)計(jì)方法, 都有很大的局限性.

      說(shuō)了這么些沒(méi)人感興趣的東西, 還是回到我們的主題, Drupal的架構(gòu). 其實(shí)我目前還是粗略看了Drupal, 主要是爬爬洋文, 大概看了一下bootstrap的代碼; 所以下面的描述主要關(guān)注Drupal的主體框架, 對(duì)其內(nèi)部不進(jìn)行深入描述(能力問(wèn)題, 象國(guó)足看齊); 而且因?yàn)槲冶旧淼亩嗾Z(yǔ)言支持(Internationalization)實(shí)現(xiàn)的并不太好, 這里記錄下來(lái)的就是僅我自己的理解, 供你們參考和指正.

      什么是Drupal的架構(gòu)?
      簡(jiǎn)單的說(shuō), Drupal是一個(gè)基于B/S架構(gòu)的內(nèi)容管理系統(tǒng)(CMS), 它用PHP語(yǔ)言實(shí)現(xiàn), 并以關(guān)系數(shù)據(jù)庫(kù)為存儲(chǔ)機(jī)制. 與其說(shuō)它是一個(gè)CMS, 不如說(shuō)它是一個(gè)CMS框架更好. 單純做博客(Blog), 它不如WordPress簡(jiǎn)單快速; 直接當(dāng)CMS, 它不如Joomla美觀方便, 甚至不如某些國(guó)產(chǎn), 但其實(shí)經(jīng)過(guò)擴(kuò)展, Drupal能夠做得與它們一樣好, 甚至更好, 這就取決于Drupal幽雅的架構(gòu)設(shè)計(jì). 這里我為啥用幽雅不用優(yōu)雅呢? 其實(shí)就在于Drupal的具體實(shí)現(xiàn), PHP本身是支持面向?qū)ο?OO)的, 但Drupal卻為了兼容老版本并沒(méi)有使用, 而是通過(guò)一系列的約定俗成的編碼約定(Convention)來(lái)達(dá)到類似的效果. (期待Drupal 7的到來(lái)...)
      好了, 下面是一個(gè)我簡(jiǎn)單畫的Drupal的系統(tǒng)架構(gòu)圖.
      Drupal系統(tǒng)架構(gòu)圖
      我們看到, Drupal主要是一個(gè)三層結(jié)構(gòu): 表現(xiàn)層, 邏輯層數(shù)據(jù)持久層. 顧名思義, 數(shù)據(jù)持久層主要是處理數(shù)據(jù)的持久化, 它是領(lǐng)域模型在具體數(shù)據(jù)庫(kù)中的實(shí)現(xiàn); 而邏輯層則基于領(lǐng)域模型進(jìn)行數(shù)據(jù)的業(yè)務(wù)邏輯處理, 它是整個(gè)結(jié)構(gòu)的核心; 表現(xiàn)層則側(cè)重于領(lǐng)域數(shù)據(jù)的呈現(xiàn)和工作流在用戶側(cè)的控制表現(xiàn), 它主要基于以用戶為中心來(lái)設(shè)計(jì)(UCD).
      邏輯層, 包括兩部分:Drupal的核心庫(kù)和模塊組(Modules).
      核心庫(kù)主要包含Druapl的請(qǐng)求流程(Bootstrap)和一系列常用的公共支撐庫(kù), 比如數(shù)據(jù)庫(kù)抽象接口, 多語(yǔ)言支持, 郵件處理, 圖像優(yōu)化等. 當(dāng)然還有最關(guān)鍵的鉤子(hook)框架, 鉤子是貫穿Drupal核心的一個(gè)重要特性, 它使得Drupal能高效靈活地協(xié)調(diào)模塊們的工作. 這里把它叫做核心庫(kù)確實(shí)不妥當(dāng), 以為它不僅僅是一個(gè)庫(kù), 更是一個(gè)公共框架.
      模塊就是Drupal的功能組件, 它處理具體的業(yè)務(wù)邏輯, 模塊如何劃分, 取決于你的業(yè)務(wù)劃分, 你的工作流, 你的設(shè)計(jì)思想.Drupal安裝包里包涵了10多個(gè)模塊, 但它最核心的只有5個(gè)模塊: Block, Filter, Node, System, User. 如果說(shuō)核心庫(kù)是劉備的話, 那這五個(gè)就是他的五虎上將了. 看看他們的功能吧, System使得系統(tǒng)具備了系統(tǒng)管理的能力, User使得系統(tǒng)具備了安全管理的能力, Node+Block+Filter使得系統(tǒng)具備了基本內(nèi)容管理的能力.
      天哪, Drupal難嗎, 真的不難, 這就是一個(gè)系統(tǒng)的完整原型, 這架構(gòu)就是多少人心目中的完美架構(gòu)啊! 從這里出發(fā), 你就能實(shí)現(xiàn)任何你想要的了, 想要什么就實(shí)現(xiàn)個(gè)什么模塊, 什么自己做不了, 怕什么, 社區(qū)里有的是人在做, 拿來(lái)主義就行啊.
      表現(xiàn)層, 有多少人是沖著Drupa的l外觀來(lái)的, 應(yīng)該不多吧, 你要真沖這個(gè)來(lái), 還真得勸你去選個(gè)別的CMS, 沒(méi)必要和自己驕矜.
      但是,對(duì)一個(gè)CMS系統(tǒng)來(lái)說(shuō), 可定制的外觀是必須提供的能力的. 因此, Drupal提供了相當(dāng)強(qiáng)大的內(nèi)容表現(xiàn)擴(kuò)展機(jī)制--主題(Theme)系統(tǒng), 真的是很黃很暴力, 它包含主題引擎和主題兩個(gè)子層, 允許開發(fā)者全方位控制內(nèi)容的表現(xiàn). 系統(tǒng)對(duì)最終用戶的輸出, 你可以從主題層輸出, 也可以從主題引擎層輸出, 還可以直接從邏輯層里的模塊層輸出; 什么, 你不想實(shí)現(xiàn)表現(xiàn)層? OK, 完成一個(gè)機(jī)機(jī)接口的純后臺(tái)系統(tǒng)也是你的選擇. 不過(guò)太靈活并不一定是好事, 特別在一個(gè)具體的項(xiàng)目開發(fā)過(guò)程中, 記住, 制定必要的開發(fā)規(guī)約是保證項(xiàng)目質(zhì)量和進(jìn)度的有效手段.
      還是回到正題, 雖然Drupal的整個(gè)主題機(jī)制強(qiáng)大復(fù)雜, 但在機(jī)制的最頂層--主題, 卻并不復(fù)雜. 它簡(jiǎn)單到由一系列的模板文件, CSS文件, JS文件和圖片即可定義出美侖美奐的外觀.

      持久層, 支持關(guān)系型數(shù)據(jù)庫(kù), 模塊一般通過(guò)核心的數(shù)據(jù)庫(kù)API訪問(wèn), 你想直接訪問(wèn)數(shù)據(jù)庫(kù)也支持, 但最好還是通過(guò)API, 這樣便于遷移和擴(kuò)展.

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多