Typecho Framework是SegmentFault所用的框架,由創始人joyqi親手打造。joyqi也是國內知名博客平臺Typecho的做者。php
Typecho Framework代碼已經開源,本文簡單介紹Typecho Framework,但願能幫助PHPer瞭解 Typecho Framework。git
Typecho Framework的目錄結構以下:github
基於Redis的緩存。數據庫
Redis是一個開源、基於內存、鍵值對數據庫,使用ANSI C編寫。Redis這種基於內存的性質,與在執行一個事務時將每一個變化都寫入硬盤的數據庫系統相比就顯得執行效率很是高。json
顧名思義這就是和數據庫打交道的。segmentfault
Connector.php
中是Connector
類,封裝了數據庫的初始化、選取、更新、增刪、插入、查詢等操做的函數。後端
數據庫的適配器,支持SQLite、MySQL、PostgreSQL。緩存
具體的query封裝,Insert
、Delete
、Query
、Select
、Update
等等。框架
提供一些輔助功能:函數
顧名思義,各類驗證。例如URL、Email、字符串長度,等等。
上面的介紹有意略過了Mvc,由於這部分是整個框架的核心,留待下面重點介紹。
HTTP請求由Server容器處理,Server容器中包括請求、響應、路由、攔截器等對象。Server收到HTTP請求後,會生成相應的請求和響應對象,以注入的方式傳給Action。
得到Server注入的對象後,Action與更後端的Service打交道,獲取所需的數據。例如數據庫等操做,都由Service打理。Action從Service獲取所需數據後,傳遞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實現)。而使用了注入,則只需在Action A中使用private XModel
聲明,很是的優雅,因爲XModel在內存中只有一個實例,性能上也很不錯。
作中學是一種高效的學習方法。經過上面的介紹,你應該對Typecho有了必定的瞭解,如今是練手的時候了。
參考Typecho Framework的源代碼,以及Typecho Framework示例,完成如下三個joyqi給出的小練習:
Hello World
Hello World
提示:
能夠參考此文
撰文 SegmentFault