在使用php接入支付宝支付的时候,遇到了Class 'LtObjectUtil' not found 错误,经过对代码的追踪终于找到问题了,原因是支付宝的代码使用了scandir 函数,而php默认禁用该函数,去除禁用就可以啦。
在php配置文件查找 'disable_functions' ,删除 scandir
代码追踪过程:
1、首先找到 /lotusphp_runtime/Lotus.php 文件,里面有一个 prepareAutoloader() 方法,用于加载lotus的组件和用户自定义的类库文件,这里使用了LtAutoloader类;
2、找到 LtAutoloader 类,位置/lotusphp_runtime/Autoloader/Autoloader.php文件,在 init() 方法调用了scanDirs() 方法来读取需要加载的文件,在 scanDirs() 方法里使用了scandir() 来读取,由于php禁用了这个函数,导致报错