剛剛,Typecho 專案發起人祁寧在官方部落格以開發者賬號 @joyqi 發文宣佈了 Typecho 1.2.0 正式版釋出的訊息 —— “這不是玩笑,我們回來了!”
此次正式版本的到來,是繼去年 9 月份 Typecho 主線版本宣佈迴歸後釋出 v1.2.0-rc.1(Release Candidate 版本)的升級版。
Typecho 1.2.0 正式版重要改進
相比 v1.2.0-rc.1,全新的 Typecho 1.2.0 正式版有了不少重要的改進:
- 新的編輯器實時預覽自動跟隨效果,以及主題內預覽功能
- 後臺介面對移動端的適配
- 新的安裝程式
- 進入 PHP 7.2 時代,以及對 PHP 8 的更好支援
- 對容器化的更好支援
除了以上新改進的功能,正式版的版本號規則也有變化:新的版本號會採用常規的3組數字組成(如 1.2.0) ,適合小步快跑的開發模式。
此前由於採用大版本/時間版本的形式(如 1.1/17.10.30 代表在 2017 年 10 月 30 日發表的 1.1 版本,該版本號模仿了 ubuntu 的發行版,比較適合於每年固定日期發行固定版本的形式),與 Typecho 目前的開發狀況不太符,因此新的版本號會採用常規的 3 組數字組成。
如 1.2.0,前面兩部分是大的版本號,重要更新的時候會變化;最後一位適用於微小更新,針對一些微小的 bug 修復更新。新的版本規則可以讓 Typecho 的版本釋出更加靈活,小版本更新也可以更頻繁。
“再見” PHP 5,“你好” PHP 7.2
據發起人祁寧介紹,Typecho “誕生”之初正值 PHP 5 流行的時代,當時 PHP 7 還是“新秀”,轉眼間 PHP 8 都已經走上了舞臺。因此,Typecho 要保持與時俱進,是時候做出改變了 —— Typecho 專案將整體轉向 PHP 7,更確切的說是 PHP 7.2。
“更高的程式語言版本不僅能帶來更好的執行效率,關鍵還能提高程式設計效率”。Typecho 專案整體轉向 PHP 7.2 語言版本的原因,主要還是考慮到相容性。當然對於使用者來說,依舊建議你使用 PHP 7.4 或 PHP 8.0 等更新的 PHP 版本。
升級至 PHP 7.2 後的 Typecho 程式碼,將會有如下變化:
- 類名全部由下劃線風格轉向反斜線的 namespace 風格
// 之前的程式碼
new Typecho_Widget_Helper_Form();
// 之後的程式碼
use Typecho\Widget\Helper\Form;
new Form();
- 編碼風格建議統一使用PSR-12
- 更強的型別約束,所有的介面引數和返回值都將加上型別約束,所以大家在使用的時候也要更加註意規範。
- 移除了大量過時/無用的程式碼。
目前,該專案的更新正在 dev 分支開發中,而 Typecho 名稱空間的程式碼則基本已改造完成。得益於新設計的自動載入系統,老舊類命名和使用方法也將得到相容,因此不必擔心之前的外掛和主題用不了。
全新的安裝指令碼
Typecho 1.2.0 正式版基於原生的 UI 元件開發了新的安裝指令碼,相比以往“程式碼亂飛”在介面上的改變程式碼可謂徹底重寫。除了互動更加便捷,新安裝指令碼也支援在命令列通過環境變數靜默安裝,為後續改動創造了條件。
擁抱容器化
隨著近年來微服務的強勢崛起,微服務的基礎容器化也早已走入尋常開發者的視野。無論是 k8s 還是 Docker,程式碼部署時針對容器化作出相應設計已成為基本需求。全新 Typecho 1.2.0 正式版在容器化方面也取得了很大的進步,目前官方容器已經正式推出:
Docker Hub: https://hub.docker.com/r/joyq...
Github: https://github.com/typecho/Do...
官方 Docker 映象支援 PHP 7.3 PHP 7.4 PHP 8.0,且執行環境支援 FPM Apache Cli等模式,作業系統可選 debian 或者更小巧的 alpine。
Typecho 使用了 Github 的流水線做全自動化編譯提交,除釋出新版本時會自動編譯以外,每晚也會自動釋出一個 nightly 版本(目前只有這個版本,並非正式程式碼,建議測試使用),Dockerfile 的文件還在書寫中。
Github Actions 等持續整合的工具讓開發的釋出測試工作更加高效,目前 Typecho 已設計了很多有趣的流水線。
關於 Typecho
Typecho 是由 type 和 echo 兩個詞合成,來自於開發團隊的頭腦風暴。
Typecho 是一款基於 PHP 7 開發構建的核心強健、擴充套件方便、體驗友好、執行流暢的輕量級開源部落格程式(前身是一款名為 Magike 的開源部落格程式)。Typecho 在 GPLVersion 2 許可證下發行,可以執行在各種平臺上,支援多種資料庫(Mysql , PostgreSQL , SQLite)。
參考連結:https://joyqi.com/typecho/abo...
祁寧 Joyqi ,SegmentFault 思否創始人、CTO, 畢業於華中科技大學電信系,是華科 Dian 團隊第 98 號成員。曾工作於阿里巴巴,在遊戲公司擔任技術架構師,在大學期間開發了開源部落格系統 Typecho ,得到了近百萬獨立開發者和設計師的喜愛。