Typecho Framework簡介

Typecho FrameworkSegmentFault所用的框架,由創始人joyqi親手打造。joyqi也是國內知名博客平臺Typecho的做者。php

Typecho Framework代碼已經開源,本文簡單介紹Typecho Framework,但願能幫助PHPer瞭解 Typecho Framework。git

目錄結構

Typecho Framework的目錄結構以下:github

  • Cache
  • DB
  • Helper
  • MVC
  • Validator

Cache

基於Redis的緩存。數據庫

Redis是一個開源、基於內存、鍵值對數據庫,使用ANSI C編寫。Redis這種基於內存的性質,與在執行一個事務時將每一個變化都寫入硬盤的數據庫系統相比就顯得執行效率很是高。json

DB

顧名思義這就是和數據庫打交道的。segmentfault

  • Connector.php
  • Adapter
  • Query

Connector

Connector.php中是Connector類,封裝了數據庫的初始化、選取、更新、增刪、插入、查詢等操做的函數。後端

Adapter

數據庫的適配器,支持SQLite、MySQL、PostgreSQL。緩存

Query

具體的query封裝,InsertDeleteQuerySelectUpdate等等。框架

Helper

提供一些輔助功能:函數

  • Autoloader.php 自動加載
  • Config.php 配置
  • HttpClient.php HTTP客戶端
  • Logger.php 日誌

Validator

顧名思義,各類驗證。例如URL、Email、字符串長度,等等。

上面的介紹有意略過了Mvc,由於這部分是整個框架的核心,留待下面重點介紹。

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給出的小練習:

  1. 輸出Hello World
  2. 使用模板輸出Hello World
  3. 使用模板,模板中涉及傳入的參數

提示:

能夠參考此文


撰文 SegmentFault

相關文章
相關標籤/搜索