剛剛,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 ,得到了近百萬獨立開發者和設計師的喜愛。