月报 | 2024.12 期
过去一个月(2024.12.19~2025.01.18)主要做了三件事:处理烂尾项目、开新项目、重温 PHP
处理烂尾项目
在 2020.12 的时候开了个单点登录/用户中心的项目 passport,当时是为了解决以前每次 Hackathon 都要重新做一次注册登录的繁琐事开的坑,后来第一个版本写好了,但是也没有再参加过 Hackathon,并且觉得那个版本不够完美——因为不支持 OAuth
、不支持微信登录等等,于是迟迟没有正式部署。
于是这个月着手把这个项目捡起来了,完全重构了下,目前支持注册登录,近期会正式部署(等域名备案下来之后),然后就会正式启用了。
重构这个项目的时候水了一篇文章: 《Go 函数只返回结构体中的成员,GC 会怎么处理?》
开新项目
开了三个新项目(按照完成度排序):一个是 OpenCL 相关的,一个是小游戏,还有一个是 gin 的周边工具。
第一个项目的第一版基本完成了,收获了一些 CGO 相关的经验,水了一篇文章:《Go 用 CGO 调用 C 函数的两种姿势:静态编译和动态链接》
第二个项目算是 WebSocket 的练手吧,目前完成度仅 20% 的样子,争取春节前能上线
第三个项目是因为最近 gin 项目做得多,每开个新项目都要手动建立几乎一样的目录结构,略繁琐,所以想做一个类似 Laravel artisan
的工具
重温 PHP
因为博客迁移之后后台有报错以及帮同学研究网站的搭建,找了些开源项目,于是又折腾了下 PHP 的东西:编译 PHP、折腾 Primary script unknown
的报错。
感慨两点:
- PHP 项目的兼容性比想象中的差,或者是 PHP 最近的大版本改动比较大?
Typecho
1.3.0 在 PHP 8.3 是正常的,但是在 8.4 会有几个语法弃用导致的报错;帮同学看的开源项目还一直在维护的,但是直接在composer.json
限制死只能 8.2/8.3,最新的 8.4 反而不行😂 - 有时候环境问题会很莫名其妙,要懂得适时放弃折腾直接重装:博客迁移之后后台莫名其妙的白屏,然后同样的环境用 Typecho 源码全新安装之后是正常的,
diff
了两份 Typecho 源码发现完全没有区别,最后无奈把/usr
目录替换到全新安装的那边之后解决白屏问题;以前搭的虚拟机里的 php-fpm,只有一个目录是能正常用的,其他目录一定会报Primary script unknown
,研究过路径、文件权限,都没法解决,最后放弃这台虚拟机了😂