本文实例讲述了thinkPHP线上自动加载异常与修复方法。分享给大家供大家参考,具体如下:
项目遇到一个奇怪的问题,本地代码正常,服务器上却不正常。
经过测试,应该是自动加载出了问题,尝试了各种方法,
1.手动加载,发现好麻烦,没完没了。
2.自己写自动加载,写不出来,尴尬。
3.修改配置,使其支持自动加载,发现还是不行。
后来进行调试,
发现本地支持
1
2
|
import( '@.ORG.OSS\OssClient' );
import( '@.ORG.OSS\Core\OssUtil' );
|
而服务器上,不支持这种斜杠的方式,却支持.的方式
后来就把thinkphp核心代码,进行调整。
1
2
3
4
5
6
7
8
9
10
11
|
// 根据自动加载路径设置进行尝试搜索
$paths = explode ( ',' ,C( 'APP_AUTOLOAD_PATH' ));
foreach ( $paths as $path ){
$class = str_replace ( "\\" , "." , $class );
// dump($class);
if (import( $path . '.' . $class )){
// dump($path.'.'.$class);
// 如果加载类成功则返回
return ;
}
}
|
经过这个小小的动作,可以了,服务器可以使用OSS了。
不容易啊!
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。