分类
flarum

解决 flarum 0.1.0-beta.12 升级 beta.13 时 `__PHP_Incomplete_Class` 问题

我在树莓派上部署了一个 flarum 实例,用来进行官网论坛的相关开发。前阵子升级 beta.13 之后,无法打开网页,报错:

Argument 1 passed to Flarum\Formatter\Event\Rendering::__construct() must be an instance of s9e\TextFormatter\Renderer, instance of __PHP_Incomplete_Class given

这个错误很奇怪,尝试调试了一下未果。我厂的论坛比较特殊,之前从邮件列表导入了很多帖子,这些帖子的 html 很不规范,所以我们魔改 /vendor/s9e/text-formatter/src/Renderers/PHP.php,去掉了 XML 校验。我怀疑跟这个有关。因为当时很忙,就没有深入。

这个周末稍微有点时间,就尝试深入了解一下,发现了这个帖子:https://discuss.flarum.org/d/19235-argument-1-passed-to-must-be-an-instance-of

在我的实例上尝试了一下,果然是这个问题。flarum 会在实例的 /storage/cache/ 下生成类的缓存文件,用来加速程序运行。但不知为何,在我的实例下,这个文件的权限既不是当前用户也不是 www-data,所以执行 php flarum cache:clear 的时候删不掉它,但是也不报错。而打开页面时,因为缓存文件有问题,就会报前面提到的错误。

使用 sudo 删掉后实例恢复正常。

分类
flarum

Flarum 添加导航并实现 i18n

Flarum 是一个开源论坛软件,基于 PHP Laravel 打造,外观很好看,功能也不错,一直想试一试。近期我厂要建社区,在我的强烈建议下,就选用了它。

Flarum 诞生很久了,现在的版本是 0.11.1-beta,还是测试版。官网也反复强调,不要把 flarum 用在生产环境,因为一切还不稳定。——这点从文档也能看出来,有些范例代码没法跑在最新版软件上。

换言之,坑比想象的多。经过将近两周断断续续的折腾,踏空很多次,完成了一些些小东西。接下来分享一下,也当给自己做笔记了。