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