Moodle - 检测到编码错误,必须由程序员修复:数据源类不存在

时间:2017-06-22 11:31:00

标签: php caching datasource moodle purge

我正在尝试将Moodle 2.7升级到3.1 。但出于某种原因,我无法做到。这是错误:

Coding error detected, it must be fixed by a programmer: The data source class does not exist.

Debug info: 
Error code: codingerror
Stack trace:
line 498 of /cache/classes/definition.php: coding_exception thrown
line 515 of /cache/classes/helper.php: call to cache_definition::load()
line 480 of /cache/classes/helper.php: call to cache_helper::purge_store()
line 323 of /admin/index.php: call to cache_helper::purge_all()

这可能是什么问题?

2 个答案:

答案 0 :(得分:0)

您可能删除了从任何db/caches.php加载缓存定义时要包含的文件。为datasource grep这些文件,这将帮助您确定问题所在。

另一个原因是无法找到该类,因为缓存代码在设置自动加载定义之前运行。这将是非常令人惊讶的,但您可以查看[moodledatafolder]/cache/core_component.php以查看该类是否在那里,并且其路径是否存在。

答案 1 :(得分:0)

尝试从2.8版更新到3.1版时,我遇到了完全相同的问题,我在此Moodle Tracker issue中找到了解决方案:

  

删除了以下目录(并让Moodle重建它们),   缓存,锁定,临时,trashdir,会话,localcache,muc(以及其他任何内容)   否则不应该在那里)。显然不要删除您的   文件/文件目录!

万一有人遇到这个问题,我就离开解决方案。

cd /var/moodledata
rm -fr ./cache/ ./lock/ ./temp/ ./trashdir/ ./sessions/ ./localcache/ ./muc/