在使用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禁用了這個函數,導致報錯