W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
(一)極簡(jiǎn)、輕量級(jí)的 CMS 系統(tǒng)
ModPHP 僅包含不到 300 KB 的未壓縮源代碼,但是麻雀雖小,五臟俱全,ModPHP 搭載了幾乎所有的基本 CMS 功能,并且具備其他 PHP 框架所不具有的特性,例如 WebSocket。ModPHP 是一個(gè) PHP 應(yīng)用程序框架,更是一個(gè)初級(jí)的 CMS 系統(tǒng),并且采用和 CMS 相同的安裝和運(yùn)行方式。
(二)模塊化開(kāi)發(fā)、自動(dòng)化擴(kuò)展
ModPHP 是由各種功能模塊組合而成的整體,Mod 的本意就是 Module,默認(rèn)包含用戶、文件、分類目錄、文章和評(píng)論五個(gè)基本模塊,支持無(wú)限模塊擴(kuò)展,所有模塊類統(tǒng)一繼承于 mod 類并自動(dòng)獲得對(duì)數(shù)據(jù)的增刪查改的方法。
ModPHP 使用的自動(dòng)化擴(kuò)展機(jī)制,絕不是簡(jiǎn)單的創(chuàng)建文件以及自動(dòng)繼承,which 是絕大多數(shù) PHP 框架的做法。ModPHP 提供的自動(dòng)化擴(kuò)展機(jī)制,使得你只需要配置一下數(shù)據(jù)庫(kù)結(jié)構(gòu),就能夠獲得完整的擴(kuò)展模塊,包括它們處理數(shù)據(jù)的基本方法,以及模塊函數(shù)庫(kù)。
(三)實(shí)用、易用,亦可作為插件使用
或許,你還在使用非常原始的手段來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接、圖像操作什么的,或者使用其他框架的“鏈?zhǔn)讲僮鳌眮?lái)組織 sql 語(yǔ)句并進(jìn)行數(shù)據(jù)庫(kù)操作。但在 ModPHP 中,你可以使用另一種更為快捷的方式,例如:bool database::insert(string $table_name, array $arg[, int &$id])
。當(dāng)然,絕大多數(shù)情況下,這還是多余的,因?yàn)?ModPHP 提供模塊接口直接訪問(wèn)和操作數(shù)據(jù)。
ModPHP 的易用性還在于,它使用前后端一致的設(shè)計(jì),也就是說(shuō),你可以在 HTML 頁(yè)面中使用和 PHP 程序相近的 JS 代碼實(shí)現(xiàn)訪問(wèn)后端操作。真正做到一個(gè)規(guī)則,前后端適用。
另外,ModPHP 所包含的類庫(kù)和函數(shù)庫(kù)也可作為插件被其他任何 PHP 程序所引用。
(四)自定義 URL 、自由引用文件,不受模式束縛
或許,你還使用非常原始的方式組織 URL 地址:查詢字符串,或者使用著 MVC 框架所謂的“URL 路由”(即偽靜態(tài)),ModPHP 除了提供偽靜態(tài)以外,還額外提供了自定義永久鏈接功能。你可以為網(wǎng)站的每一篇文章設(shè)置完全獨(dú)立的 URL 地址,讓這個(gè) URL 體現(xiàn)這篇文章的意圖。
在其他框架中,你可能被要求哪些文件應(yīng)該放在哪些目錄以便調(diào)用,甚至?xí)竽闶褂脤?shí)體來(lái)替換運(yùn)算符,因?yàn)樗鼈兪褂玫摹澳0逡婕夹g(shù)”并不完善,另外你還須要學(xué)習(xí)一種新的模板語(yǔ)法。使用 ModPHP,你完全不需要這樣。在 ModPHP 中,你可以使用原生的 PHP 代碼編寫(xiě)模板,或者使用 HTML 語(yǔ)義標(biāo)簽替換 PHP 語(yǔ)言結(jié)構(gòu)。Template 引擎會(huì)出色的解析并編譯你的模板,你可以像使用原生代碼一樣引入文件,也可以使用各種運(yùn)算符。你不需要學(xué)習(xí)新的模板語(yǔ)法并能夠使用它。
(五)單例模式節(jié)約系統(tǒng)資源,防止變量濫用
ModPHP 使用完全的單例模式,這樣做的目的是保證系統(tǒng)中所有對(duì)象只有一個(gè)實(shí)例,從而節(jié)約系統(tǒng)資源,并且防止由于使用全局變量帶來(lái)的不安全性。
在防止變量濫用方面,ModPHP 使用自動(dòng)生成函數(shù)機(jī)制,確保最大限度的減少變量的使用,轉(zhuǎn)而使用功能更為強(qiáng)大的函數(shù),并且函數(shù)名就是數(shù)據(jù)表的字段名。或許你還在抱怨在接手別人遺留的開(kāi)發(fā)任務(wù)時(shí)遇到幾十上百的變量的困難,使用 ModPHP,完全沒(méi)有這些顧慮。
(六)分工開(kāi)發(fā),互不干擾
如(五)中指出的,其他框架可能需要用到很多的變量,在分工開(kāi)發(fā)時(shí)務(wù)必需要相互溝通交換變量,這使得完全分離的開(kāi)發(fā)任務(wù)極難完成。ModPHP 沒(méi)有這種困擾,開(kāi)發(fā)程序邏輯(大多數(shù)邏輯框架已經(jīng)定義)的人和開(kāi)發(fā)模板的人可以毫不相干,后者只需要接過(guò)前者留下的任務(wù),查看已有數(shù)據(jù)庫(kù)結(jié)構(gòu)配置即可。
(七)完全面向 API
無(wú)論是前端調(diào)用,還是后端程序設(shè)計(jì),ModPHP 都使用 API 來(lái)完成。前臺(tái)的 API 直接對(duì)應(yīng)類名和方法名,用來(lái)請(qǐng)求執(zhí)行對(duì)象和操作。后臺(tái)使用掛鉤機(jī)制直接將 Api Hook 回調(diào)函數(shù)綁定到數(shù)據(jù)操作和系統(tǒng)加載的各個(gè)流程,實(shí)現(xiàn)攔截過(guò)濾。下面這些調(diào)用方式將是你在 ModPHP 中經(jīng)常見(jiàn)到、并且經(jīng)常使用的。
mod.php?obj::act[|更多參數(shù)]
add_action('api.name', function([$arg]){ /** 執(zhí)行代碼 */ });
(八)多種設(shè)計(jì)模式結(jié)合
ModPHP 使用由單例模式、數(shù)據(jù)訪問(wèn)對(duì)象模式、傳輸對(duì)象模式、攔截過(guò)濾器模式、前端控制器模式和裝飾器模式等構(gòu)成的混合模式,這些設(shè)計(jì)模式的相互配合使得 ModPHP 能夠在核心代碼非常精簡(jiǎn)的條件下實(shí)現(xiàn)復(fù)雜的功能,并提供最大的用戶定制性,真正將視圖設(shè)計(jì)與模型、控制器分離。
(九)Socket 全雙工通信
WebSocket 是一個(gè)時(shí)興的話題,但各種服務(wù)器上實(shí)現(xiàn) WebSocket 的方式都千差萬(wàn)別,并且和客戶端的操作形式差別太大,難以理解。而在 PHP 領(lǐng)域,WebSocket 更是稀罕之物。
ModPHP 提供全雙工通信的 Socket 服務(wù)器功能,完美配合 WebSocket 和其他編程語(yǔ)言的 Socket。ModPHP 將 Socket 交互設(shè)計(jì)成與 WebSocket 一致。在前端,你只需要使用 WebSocket.send() 方法發(fā)送 JSON 數(shù)據(jù),服務(wù)器則使用 SocketServer::send() 回復(fù) JSON 數(shù)據(jù)。
ModPHP 的 SocketServer 可以與任何支持 Socket 的編程語(yǔ)言所編寫(xiě)的客戶端進(jìn)行雙向通信,實(shí)現(xiàn)一個(gè)服務(wù)器、多種客戶端的 C/S 架構(gòu)理念。
(十)極具功能性和可玩性
除了上面所介紹的內(nèi)容,ModPHP 還提供了許多其他的特性,例如命令行支持(shell 和交互式控制臺(tái))。你以為 curl 命令只是 Linux 系統(tǒng)所特有的東西,使用 ModPHP,你也可以在 Windows 下使用 curl 命令,并且比 Linux 自帶的更好用。ModPHP 所包含的大部分特性,你都可以將它們運(yùn)用在控制臺(tái)中。ModPHP 已經(jīng)超越了應(yīng)用程序框架的范疇,它更是一款實(shí)用的工具,幫助使用者快速完成事務(wù)處理。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: