摘要:代碼已經(jīng)開(kāi)源,本文簡(jiǎn)單介紹,希望能幫助了解。數(shù)據(jù)庫(kù)的適配器,支持。請(qǐng)求由容器處理,容器中包括請(qǐng)求響應(yīng)路由攔截器等對(duì)象。收到請(qǐng)求后,會(huì)生成相應(yīng)的請(qǐng)求和響應(yīng)對(duì)象,以注入的方式傳給。從獲取所需數(shù)據(jù)后,傳遞給的響應(yīng)對(duì)象。
Typecho Framework是SegmentFault所用的框架,由創(chuàng)始人joyqi親手打造。joyqi也是國(guó)內(nèi)知名博客平臺(tái)Typecho的作者。
Typecho Framework代碼已經(jīng)開(kāi)源,本文簡(jiǎn)單介紹Typecho Framework,希望能幫助PHPer了解 Typecho Framework。
目錄結(jié)構(gòu)Typecho Framework的目錄結(jié)構(gòu)如下:
Cache
DB
Helper
MVC
Validator
Cache基于Redis的緩存。
Redis是一個(gè)開(kāi)源、基于內(nèi)存、鍵值對(duì)數(shù)據(jù)庫(kù),使用ANSI C編寫(xiě)。Redis這種基于內(nèi)存的性質(zhì),與在執(zhí)行一個(gè)事務(wù)時(shí)將每個(gè)變化都寫(xiě)入硬盤的數(shù)據(jù)庫(kù)系統(tǒng)相比就顯得執(zhí)行效率非常高。
DB顧名思義這就是和數(shù)據(jù)庫(kù)打交道的。
Connector.php
Adapter
Query
ConnectorConnector.php中是Connector類,封裝了數(shù)據(jù)庫(kù)的初始化、選取、更新、增刪、插入、查詢等操作的函數(shù)。
Adapter數(shù)據(jù)庫(kù)的適配器,支持SQLite、MySQL、PostgreSQL。
Query具體的query封裝,Insert、Delete、Query、Select、Update等等。
Helper提供一些輔助功能:
Autoloader.php 自動(dòng)加載
Config.php 配置
HttpClient.php HTTP客戶端
Logger.php 日志
Validator顧名思義,各種驗(yàn)證。例如URL、Email、字符串長(zhǎng)度,等等。
上面的介紹有意略過(guò)了Mvc,因?yàn)檫@部分是整個(gè)框架的核心,留待下面重點(diǎn)介紹。
MVCHTTP請(qǐng)求由Server容器處理,Server容器中包括請(qǐng)求、響應(yīng)、路由、攔截器等對(duì)象。Server收到HTTP請(qǐng)求后,會(huì)生成相應(yīng)的請(qǐng)求和響應(yīng)對(duì)象,以注入的方式傳給Action。
獲得Server注入的對(duì)象后,Action與更后端的Service打交道,獲取所需的數(shù)據(jù)。例如數(shù)據(jù)庫(kù)等操作,都由Service打理。Action從Service獲取所需數(shù)據(jù)后,傳遞result給Server的響應(yīng)對(duì)象。
Action傳遞result,這是Typecho Framework的特色。result可以是template,也可以是json,等等。使用result,方便代碼更好地復(fù)用。
上面提到了注入。這也是Typecho Framework的特色。關(guān)于注入這個(gè)概念,可以參考wikipedia的解釋。舉個(gè)例子吧。假設(shè)Action A需要使用Model X,通常的做法是用$this->load(XModel)來(lái)導(dǎo)入,或者直接使用$this->Xmodel(通過(guò)__get這樣的magic method實(shí)現(xiàn))。而使用了注入,則只需在Action A中使用private XModel聲明,非常的優(yōu)雅,由于XModel在內(nèi)存中只有一個(gè)實(shí)例,性能上也很不錯(cuò)。
小練習(xí)做中學(xué)是一種高效的學(xué)習(xí)方法。通過(guò)上面的介紹,你應(yīng)該對(duì)Typecho有了一定的了解,現(xiàn)在是練手的時(shí)候了。
參考Typecho Framework的源代碼,以及Typecho Framework示例,完成以下三個(gè)joyqi給出的小練習(xí):
輸出Hello World
使用模板輸出Hello World
使用模板,模板中涉及傳入的參數(shù)
提示:
可以參考此文
撰文 SegmentFault
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/20675.html
摘要:注入是的重要特性。注入寫(xiě)起來(lái)非常優(yōu)雅,在性能上也有好處避免了函數(shù)開(kāi)銷。本文簡(jiǎn)要介紹如何使用的注入。如果你不太了解,請(qǐng)先參考簡(jiǎn)介和兩篇文章。注入的使用十分簡(jiǎn)單。中需要自動(dòng)提示的話,需要額外使用注明。感謝提供這個(gè)小竅門。 注入是Typecho-Framewrok的重要特性。注入寫(xiě)起來(lái)非常優(yōu)雅,在性能上也有好處(避免了函數(shù)開(kāi)銷)。本文簡(jiǎn)要介紹如何使用Typecho-Framework的注入。...
摘要:是所用的框架,本文將介紹如何用這個(gè)框架寫(xiě)一個(gè)程序。在目錄下建立目錄,并在其中創(chuàng)建文件首先我們定義一個(gè)命名空間,我們的程序使用為命名空間。入口程序這樣基本上就完成了。會(huì)自動(dòng)在目錄下找模板文件,約定大于配置。 Typecho Framework是SegmentFault所用的框架,本文將介紹如何用這個(gè)框架寫(xiě)一個(gè)Hello World程序。如果你不了解Typecho Framework,請(qǐng)先...
摘要:是寫(xiě)的一個(gè)框架。據(jù)說(shuō)是參考了的思想。要先頁(yè)面上顯示我們還需要寫(xiě)一下路由。打開(kāi)由于中有用到數(shù)據(jù)庫(kù),我們先注釋掉。文件中注釋這行。然后這樣可以通過(guò)訪問(wèn)看到輸出了。 typecho framework是70寫(xiě)的一個(gè)框架。據(jù)說(shuō)是參考了java的思想。 項(xiàng)目地址:https://github.com/typecho/framework 參考項(xiàng)目:https://github.com/typec...
摘要:看起來(lái)很簡(jiǎn)單吧其實(shí)里面還是有不少坑的。激活插件方法如果激活失敗直接拋出異常禁用插件方法如果禁用失敗直接拋出異常獲取插件配置面板配置面板個(gè)人用戶的配置面板插件實(shí)現(xiàn)方法插件流程插件的基本流程是這樣的。下一節(jié)老高會(huì)更詳細(xì)的說(shuō)明插件類的方法。 最近老高正在編寫(xiě)一個(gè)關(guān)于typecho的插件,由于typecho不像wordpress,有那么多的文檔參考,寫(xiě)一個(gè)插件還是遇到了很多的坑,不過(guò)隨著研究的...
摘要:此文原本發(fā)表于我的博客老高的技術(shù)博客,歡迎和老高交流之前啰嗦了很多,現(xiàn)在開(kāi)始寫(xiě)核心代碼。至此我們已經(jīng)拿到了文章的永久鏈接,下一步就是給百度服務(wù)器發(fā)送數(shù)據(jù)了本節(jié)完 此文原本發(fā)表于我的博客 老高的技術(shù)博客 ,歡迎和老高交流! 之前啰嗦了很多,現(xiàn)在開(kāi)始寫(xiě)核心代碼。 分析一下,發(fā)布文章的時(shí)候,我們需要的信息就是當(dāng)前文章的URL,我們需要想辦法從$contents、 $class中拿到他。...
閱讀 2868·2021-11-22 15:22
閱讀 19339·2021-09-22 15:00
閱讀 1449·2021-09-07 09:58
閱讀 1251·2019-08-30 13:01
閱讀 2456·2019-08-29 16:27
閱讀 2356·2019-08-26 13:25
閱讀 1629·2019-08-26 12:13
閱讀 952·2019-08-26 11:53