嘟嘟社区

【是真的】新的Typecho1.2.0 来了


写在最前面:
考虑到兼容性我们暂时将最低的语言版本放到 PHP 7.2,当然我们强烈建议你使用更新的 PHP 版本,比如 PHP 7.4 或者 PHP 8.0

转自:https://joyqi.com/typecho/about-typecho-1-2-dev-plan.html

新版的Typecho开发计划


关注 Typecho Github 的朋友应该已经发现,最近 Typecho 的 dev 分支更新频繁,其它相关项目也有动作。沉寂许久之后,我也决定开始继续推进这个项目了,不过距离上次更新已经是三四年前了。虽然开发版一直在修复 Bug,但是小打小闹未免也太糊弄人了。所以我就简单说说这个新版本的开发计划吧。

版本号的变化


首先最直观的改变是版本号的变化,之前是大版本/时间版本这样的形式,比如1.1/17.10.30,代表的是在2017年10月30日发表的1.1版本(看到这个日期,脸不禁又红了)。这个版本号模仿的是ubuntu的发行版,它比较适合于每年固定日期发行固定版本的形式,跟 Typecho 目前的开发状况不太符合,所以新的版本号会采用常规的3组数字组成。比如1.2.0,前面两部分是大的版本号,重要更新的时候会变化,最后一位适用于微小更新,针对一些微小的bug修复更新。新的版本规则可以让 Typecho 的版本发布更加灵活,小版本更新也可以更频繁。

向 PHP 5 说再见吧


Typecho 刚发布的时候还是 PHP 5 流行的时代,PHP 7 还是个新鲜玩意。转眼间沧海桑田,PHP 8都已经走上舞台,我们还有啥理由为是否支持 PHP 5 挣扎。更高语言的版本除了带来更好的执行效率以外,最重要的是新的语言特性的提高了编程的效率。因此 Typecho 的整个项目将整体转向 PHP 7,更确切的说是 PHP 7.2。考虑到兼容性我们暂时将最低的语言版本放到 PHP 7.2,当然我们强烈建议你使用更新的 PHP 版本,比如 PHP 7.4 或者 PHP 8.0。

升级到 PHP 7.2 后将给 Typecho 代码带来如下变化:

类名全部由下划线风格转向反斜线的 namespace 风格

// 之前的代码
new Typecho_Widget_Helper_Form();

// 之后的代码
use TypechoWidgetHelperForm;

new Form();
编码风格建议统一使用PSR-12
更强的类型约束,所有的接口参数和返回值都将加上类型约束,所以大家在使用的时候也要更加注意规范。
我们移除了大量过时/无用的代码。
这个更新目前正在dev分支开发中,目前 Typecho 命名空间的代码基本都已经改造完成。得益于新设计的自动加载系统,老的类命名和使用方法也将得到兼容,所以你不必担心之前的插件和主题用不了。

新的安装脚本


老的安装脚本可以说非常混乱,里面各种乱飞的代码都带有深深的时代印记,因此我们基于原生的 UI 组件开发了新的安装脚本,相比界面上的改变代码更是彻底重写。除了交互更加便捷,而且现在也支持在命令行通过环境变量静默安装,这就我们下面的改动创造了条件。

拥抱容器化


如果说这几年服务端架构最大的进步是什么,那无疑是微服务了。而微服务的基础容器化也早已走入寻常开发者的视野,无论是 k8s 还是 Docker 都要求代码部署的时候针对容器化作出相应的设计。新版的 Typecho 在这一块取得了很大的进步,目前我们的官方容器已经正式推出:

Docker Hub: https://hub.docker.com/r/joyqi/typecho
Github: https://github.com/typecho/Dockerfile
官方 Docker 镜像支持 PHP 7.3 PHP 7.4 PHP 8.0,并且运行环境支持FPM Apache Cli等模式,操作系统可以选择debian或者更小巧的alpine。我们使用了 Github 的流水线做全自动化编译提交,除了发布新版本时会自动编译以外,每晚也会自动发布一个 nightly 版本(目前只有这个版本,并不是正式代码,建议测试使用)。Dockerfile的文档还在书写中。

Github Actions 等持续集成的工具让开发的发布测试工作更加高效,我们目前也设计了很多有趣的流水线。

后台界面移动端适配


手持设备访问已经成为了一个刚需,所以你现在可以看到一个可用的手机界面。针对手指位置,我们还将菜单从顶部放到了底部。

写在最后


不知不觉 Typecho 已经走过了超过十年,值得庆幸的是这么多年过去了,我仍然对软件开发饱含热情。这么多年以来也一直有 Typecho 的用户通过各种渠道给我提出改进意见,各种催更也渐渐成了一个梗,我也时常为无法回报大家的关注而焦虑。在后续的开发中,我希望能以科学的方法来管理这个项目,让它更加高效持续地运转。

这是一个纷繁的时代,信息渠道已经多到快让人喘不过气来。而个人博客这种来自互联网初期的载体,似乎与这个环境显得格格不入。它就像大海中的小岛,在海浪中显得那么不起眼,但它的存在本身就彰显了一种意义。无论是波涛汹涌,还是风平浪静,它都在那里,而你的心也就找到了一处可以停靠的港湾。

hanweizhe 发表于 2022-4-1 11:33
一年前的事现在来说

今天发布了1.2稳定版

应该是

   

大雄你还在用3g吗

表妹 发表于 2022-4-1 11:11
大雄你还在用3g吗

我先看到了,然后我去升级了,然后发现php版本要7.2,我还是5.6呢

robot 发表于 2022-4-1 00:12
我先看到了,然后我去升级了,然后发现php版本要7.2,我还是5.6呢

8.1都适配了

什么时候能支持自带的SEO关键词标题介绍。
终于更新了
那么问题来了 怎么无损更新
我升级了最新的1.2和php8,完美兼容。
一年前的事现在来说