关注Typecho Github的朋友应该已经发现, 最近Typecho的dev分支更新频繁,其它 相关项目也有动作。沉寂许久之后,我也决定 开始继续推进这个项目了,不过距离上次更新 已经是三四年前了。虽然开发版一直在修复Bug , 但是小打小闹未免也太糊弄人了 。 所以我就简单说说这个新版本的开发计划吧。
轻量型的开源博客系统更新 Typecho 仅仅 7 张数据表,加上不足 400KB 的代码,就实现了完整的插件与模板机制。超低的 CPU 和内存使用率,足以发挥主机的最高性能。原生支持 Markdown 排版语法,易读更易写。支持 BAE/GAE/SAE 等各类云主机,即使面对突如其来的高访问量,也能轻松应对。精心打磨过的操作界面,依然是你熟悉的面孔,更多了一份成熟与贴心。每一个像素的剪裁,都只为离完美更进一步。
版本号的变化
首先最直观的改变是版本号的变化,之前是 大版本/时间版本这样的形式,比如
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代码带来 如下变化:
1.类名全部由下划线风格转向反斜线的 namespace风格
2. 编码风格建议统一使用PSR-12
3. 更 强 的 类 型 约 束 , 所 有 的 接 口 参 数 和 返 回 值 都 将 加 上 类 型 约 束 , 所 以 大 家 在 使 用 的 时候也要更加注意规范。
4. 我们移除了大量过时/无用的代码。
这个更新目前正在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的用户通过各种渠道给我提出改进 意见,各种催更也渐渐成了一个梗,我也时常 为无法回报大家的关注而焦虑。在后续的开发 中,我希望能以科学的方法来管理这个项目, 让它更加高效持续地运转。
这 是 一 个 纷 繁 的 时 代 , 信 息 渠 道 已 经 多 到 快 让 人 喘 不 过 气 来 。 而 个 人 博 客 这 种 来 自 互 联 网 初 期 的 载 体 , 似 乎 与 这 个 环 境 显 得 格 格 不 入 。 它 就 像 大 海 中 的 小 岛 , 在 海 浪 中 显 得 那 么 不 起 眼 , 但 它 的 存 在 本 身 就 彰 显 了 一 种 意 义 。 无 论 是 波 涛 汹 涌 , 还 是 风 平 浪 静 , 它 都 在 那 里 , 而 你 的 心 也 就 找 到 了一处可以停靠的港湾。