刚刚,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 ,得到了近百万独立开发者和设计师的喜爱。