重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā)
Sep 01, 2023 pm 08:25 PM在本系列中,我們將討論如何使用 WordPress 建立 Web 應(yīng)用程式。儘管這不是我們將研究程式碼的技術(shù)系列,但我們涵蓋了框架、基礎(chǔ)、設(shè)計(jì)模式、架構(gòu)等主題。
如果您還沒有閱讀該系列的第一篇文章,我推薦您閱讀;但是,出於本文的目的,我們可以將上一篇文章總結(jié)如下:
簡而言之,軟體可以建構(gòu)在框架上,軟體可以擴(kuò)展基礎(chǔ)。
簡單地說,我們區(qū)分了框架和基礎(chǔ)——這兩個(gè)術(shù)語在軟體中經(jīng)?;Q使用,儘管它們不是同一件事。 WordPress 是一個(gè)基礎(chǔ),因?yàn)樗旧砭褪且粋€(gè)應(yīng)用程式。它不是一個(gè)框架。
為此,當(dāng)涉及在 WordPress 上建立 Web 應(yīng)用程式時(shí),我們需要重新思考架構(gòu)或重新考慮如何建立應(yīng)用程式的概念模型。
Web 應(yīng)用程式的結(jié)構(gòu)
在盡可能高的層級(jí)上,Web 應(yīng)用程式通常由以下三個(gè)元件構(gòu)成:
- 資料庫層
- 應(yīng)用層
- 表示層
一般來說,表示層就是使用者看到的、使用者互動(dòng)的。它包括將某些內(nèi)容呈現(xiàn)在使用者面前所需的所有樣式、客戶端程式碼和標(biāo)記。
當(dāng)使用者點(diǎn)擊某些內(nèi)容或頁面呈現(xiàn)從資料庫檢索的資訊時(shí),它正在與應(yīng)用程式層進(jìn)行互動(dòng)。
應(yīng)用層負(fù)責(zé)協(xié)調(diào)來自瀏覽器和/或來自使用者操作的資訊到資料庫。有時(shí),這包括將資訊寫入資料庫(例如來自表單欄位的資訊)以及從資料庫讀取資訊(例如檢索使用者的帳戶資訊)。
就像表示層由不同的元件組成(例如樣式、JavaScript、標(biāo)記等)一樣,應(yīng)用程式層也可以由各種不同的元件組成,例如從資料庫讀取資料和寫入資料到資料庫所需的系統(tǒng)、清理資訊、驗(yàn)證資訊以及執(zhí)行針對(duì)當(dāng)前問題所特有的某些規(guī)則。
最後,資料庫層是儲(chǔ)存資料的地方。它可能由檔案系統(tǒng)組成,可能由 MySQL 資料庫組成,也可能由第三方解決方案組成,例如「雲(yún)端」的資料儲(chǔ)存(例如 Amazon S3 或類似的東西)。
都是抽象的
要理解的重點(diǎn)是,在軟體中,我們總是在處理某種程度的抽象。例如,我們談?wù)撡Y料儲(chǔ)存或資料庫層,但我們並沒有真正具體化。應(yīng)用層和表示層也是如此。
- 我們是在談?wù)摼哂卸鄠€(gè)表格的關(guān)聯(lián)式資料庫,還是在談?wù)撾?yún)端儲(chǔ)存?
- 我們將使用哪種資料存取層連接到應(yīng)用程式層來與資料庫通訊?
- 我們?cè)谇岸耸褂媚男┛蚣芎驼Z言?普通 JavaScript、jQuery、Knockout.js? CSS 預(yù)處理器 - LESS 或 Sass 怎麼樣?
顯然,我們現(xiàn)在並不打算提供這些問題的答案,但重點(diǎn)是所有 Web 應(yīng)用程式都包含類似的元件,但每個(gè)元件的詳細(xì)資訊因?qū)0付悺?
WordPress 的元件
作為一個(gè) Web 應(yīng)用程式本身,WordPress 是各種技術(shù)如何組合在一起形成 Web 應(yīng)用程式的完美範(fàn)例:
- 資料庫層是MySQL資料庫。
- 應(yīng)用層(有些人會(huì)認(rèn)為是 WordPress 本身)是用 PHP 編寫的,處理許多讀取和寫入資料儲(chǔ)存的核心操作,同時(shí)為開發(fā)人員提供 API 以進(jìn)一步利用它。
- 表示層使用基本的CSS(至少目前如此)、HTML(一些主題現(xiàn)在使用HTML5)、jQuery,並且部分儀表板使用Backbone.js。
這是 WordPress 架構(gòu),但是我們想要在應(yīng)用程式之上建立的專案又如何呢?他們?nèi)绾巫裱嗤募軜?gòu)?
好吧,請(qǐng)記住 WordPress 是一個(gè)基礎(chǔ) - 而不是一個(gè)框架 - 因此我們預(yù)設(shè)受到 WordPress 架構(gòu)的影響。這並不意味著在某些情況下我們不能引入自己的程式庫,但它確實(shí)會(huì)影響我們應(yīng)用程式和專案的建置方式。
稍後我們將更多地討論庫、可擴(kuò)展性等,但首先,重要的是要注意,在當(dāng)今時(shí)代,重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā)(以及MVVM 和模型、視圖等的其他變體)範(fàn)例風(fēng)靡一時(shí),但WordPress不遵循這個(gè)慣例。
對(duì)於為什麼這可能是好事或壞事,存在著支持和反對(duì)的爭論,但這不是這篇文章的目的。相反,值得注意的是 WordPress 使用事件驅(qū)動(dòng)模式,而不是模型視圖控制面板。
為此,值得了解事件驅(qū)動(dòng)模型的工作原理,以便您清楚地了解 WordPress 掛鉤的工作原理,以及如何將您的思維從 重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā) 或您使用的任何其他範(fàn)式轉(zhuǎn)變使用、WordPress 如何管理其資訊。
事件驅(qū)動(dòng)意味著什麼?
在查看事件驅(qū)動(dòng)應(yīng)用程式的範(fàn)例之前,讓我們回顧一下遵循 重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā) 範(fàn)例的含義。
- 首先,視圖用作演示。用戶查看資訊並與用戶介面互動(dòng)。
- 接下來,控制器協(xié)調(diào)模型和視圖之間的資訊。它們響應(yīng)用戶操作,並從模型中檢索資訊以傳輸?shù)揭晥D中。
- 之後,模型代表資料庫中的資料。這可以透過多種方式完成,但最受歡迎的方法之一是將資料庫中的資料映射到物件關(guān)係模型,以便資料以物件的格式表示。
整個(gè)重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā)模型如下圖所示:



重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā)圖標(biāo)題>
現(xiàn)在,事件驅(qū)動(dòng)的應(yīng)用程式可以具有一些相同的元件- 也就是說,它們可以具有視圖和模型或視圖和資料物件- 但它們不一定具有協(xié)調(diào)從前端到後端的資訊的控制器後端。
相反,事件驅(qū)動(dòng)程式設(shè)計(jì)的工作前提是「某件事發(fā)生了」。因此,在 WordPress 行話中,操作 被命名為「操作」(當(dāng)然,我們也有過濾器,但我將立即介紹這些內(nèi)容)。
WordPress 提供了鉤子,這些鉤子實(shí)際上是執(zhí)行中的點(diǎn),我們可以在其中引入自己的功能,以便WordPress 識(shí)別「當(dāng)此事件發(fā)生時(shí),我需要觸發(fā)這些函數(shù)”,其中這些函數(shù)被定義為我們提供的任何內(nèi)容。
事實(shí)是,過濾器的工作方式相同,但目的不同。簡而言之,過濾器是用於在返回應(yīng)用程式執(zhí)行之前以某種方式操作資料(例如附加、前置、刪除或更新內(nèi)容)的操作。
那麼這看起來像什麼?



沒什麼特別複雜的,對(duì)吧?
那我們的新架構(gòu)是什麼?
本文的要點(diǎn)主要是讓我們思考事件驅(qū)動(dòng)程式設(shè)計(jì)以及如何協(xié)調(diào)我們專門在 WordPress 上建立 Web 應(yīng)用程式的工作。
也就是說,我們必須根據(jù)事件或「發(fā)生了一些事情」的事實(shí)來思考,這樣我們才能知道何時(shí)適當(dāng)?shù)夭迦胛覀冏约旱男袆?dòng)。我們將在下一篇文章中更詳細(xì)地討論這一點(diǎn),但我希望你們從這篇特定文章中學(xué)到的要點(diǎn)是,僅僅因?yàn)槟承〇|西不是重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā)(或任何下一個(gè)流行的範(fàn)例) )並不意味著它不適合應(yīng)用程式開發(fā)。
每種模式和架構(gòu)都為我們提供了優(yōu)點(diǎn)和缺點(diǎn),所有這些都有助於成功建立 Web 應(yīng)用程式。
下一個(gè)...
在本系列的下一篇中,我們將更詳細(xì)地了解掛鉤如何在WordPress 上建立Web 應(yīng)用程式中發(fā)揮重要作用,然後我們將開始研究WordPress 提供的一些功能-使其成為某些類型(並非所有類型)網(wǎng)頁應(yīng)用程式的可靠選擇。
以上是重新構(gòu)思架構(gòu):將WordPress用於網(wǎng)頁應(yīng)用程式開發(fā)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

有四種方法可以調(diào)整 WordPress 文章列表:使用主題選項(xiàng)、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設(shè)置)或直接修改 WordPress 數(shù)據(jù)庫。

Web開發(fā)設(shè)計(jì)是一個(gè)充滿潛力的職業(yè)領(lǐng)域。然而,這個(gè)行業(yè)也面臨著諸多挑戰(zhàn)。隨著越來越多的企業(yè)和品牌轉(zhuǎn)向網(wǎng)絡(luò)市場,Web開發(fā)者有機(jī)會(huì)展示他們的技能並在職業(yè)生涯中取得成功。然而,隨著對(duì)Web開發(fā)需求的持續(xù)增長,開發(fā)人員的數(shù)量也在增加,導(dǎo)致競爭日益激烈。但令人振奮的是,如果你具備天賦和意願(yuàn),你總能找到新方法來創(chuàng)造獨(dú)特的設(shè)計(jì)和創(chuàng)意。作為一名Web開發(fā)人員,你可能需要不斷尋找新的工具和資源。這些新工具和資源不僅能讓你的工作更加便捷,還能提升工作質(zhì)量,從而幫助你贏得更多的業(yè)務(wù)和客戶。 Web開發(fā)的趨勢(shì)不斷變化,

導(dǎo)入 WordPress 源碼需要以下步驟:創(chuàng)建子主題以進(jìn)行主題修改。導(dǎo)入源碼,覆蓋子主題中的文件。激活子主題,使其生效。測試更改,確保一切正常。

要使用 WordPress 主機(jī)建站,需要:選擇一個(gè)可靠的主機(jī)提供商。購買一個(gè)域名。設(shè)置 WordPress 主機(jī)帳戶。選擇一個(gè)主題。添加頁面和文章。安裝插件。自定義您的網(wǎng)站。發(fā)布您的網(wǎng)站。

您想將您的網(wǎng)站連接到Y(jié)andex網(wǎng)站管理員工具嗎? Google搜索控制臺(tái)、Bing和Yandex等網(wǎng)站管理員工具可幫助您優(yōu)化網(wǎng)站、監(jiān)控流量、管理robots.txt、檢查網(wǎng)站錯(cuò)誤等。在本文中,我們將分享如何在Yandex網(wǎng)站管理員工具中添加您的WordPress網(wǎng)站來監(jiān)控您的搜索引擎流量。什麼是Yandex? Yandex是一個(gè)位於俄羅斯的流行搜索引擎,類似於Google和Bing。您可以在Yandex中優(yōu)

您想了解如何在WordPress網(wǎng)站上使用cookie嗎? Cookie是在用戶瀏覽器中存儲(chǔ)臨時(shí)信息的有用工具。您可以使用此信息通過個(gè)性化和行為定位來增強(qiáng)用戶體驗(yàn)。在本終極指南中,我們將向您展示如何像專業(yè)人士一樣設(shè)置、獲取和刪除WordPresscookie。注意:這是一個(gè)高級(jí)教程。它要求您精通HTML、CSS、WordPress網(wǎng)站和PHP。什麼是Cookie? Cookie是用戶訪問網(wǎng)站時(shí)創(chuàng)建並存儲(chǔ)在用戶瀏覽

您需要修復(fù)WordPress中的HTTP圖片上傳錯(cuò)誤嗎?當(dāng)您在WordPress中創(chuàng)建內(nèi)容時(shí),此錯(cuò)誤可能會(huì)特別令人沮喪。當(dāng)您使用內(nèi)置WordPress媒體庫將圖像或其他文件上傳到CMS時(shí),通常會(huì)發(fā)生這種情況。在本文中,我們將向您展示如何輕鬆修復(fù)WordPress中的HTTP圖片上傳錯(cuò)誤。 WordPress媒體上傳過程中出現(xiàn)HTTP錯(cuò)誤的原因是什麼?當(dāng)您嘗試使用WordPress媒體上傳器將文件上傳到Wo

要在 WordPress 上創(chuàng)建賬號(hào),只需訪問其網(wǎng)站,選擇註冊(cè)選項(xiàng),填寫註冊(cè)表,並驗(yàn)證您的電子郵件地址。其他註冊(cè)方法包括使用 Google 賬號(hào)或 Apple ID。註冊(cè)的好處包括創(chuàng)建網(wǎng)站、獲得功能、加入社區(qū)和獲得支持。
