【发布时间】:2014-10-01 16:32:48
【问题描述】:
对不起我的语言不好:)
在我的本地 apache 2.2 php 5.3.13 上一切正常,但在远程服务器上(也是 php 5.3)spl_autoload 抛出逻辑异常:
致命错误:未捕获的异常“LogicException”和消息“类” System\Core\Helper\Helper 无法加载 /home/u737840143/public_html/index.php:6 堆栈跟踪:#0 /home/u737840143/public_html/index.php(6): spl_autoload('System\Core\Hel...') #1 {main} 抛出 /home/u737840143/public_html/index.php 在第 6 行
代码:
<?php
spl_autoload_extensions('.php');
spl_autoload_register();
\System\Core\Helper\Helper::getLanguage();
$router = new \System\Router\Router();
$router->init();
远程文件夹结构对应本地。
【问题讨论】:
-
您使用的是基于 PHP 的框架吗?这是否安装在两台服务器上?
-
调试:编辑脚本以使用 'include class_file...' 加载类文件 - 文件加载和类可用吗?如果是这样,那么您的“自动加载”是错误的。如果它没有加载,则更改“include class_file ...”直到它加载。然后整理一下'spl_loader'。
-
不,我在这个项目中没有使用任何框架,只有 PHP。
-
Ryan,我知道自动加载是错误的,但我想知道 - 为什么?这是一个标准的 PHP 函数,它可以在我的本地服务器上正常工作,我所有的应用程序都基于这个自动加载函数!我需要在服务器上更改哪些设置才能使应用程序正常工作?
-
您只使用了“默认自动加载器”spl-autoload,它希望通过“包含路径”上的目录查找类文件。请参阅 set-include-path 以添加到脚本中的路径。如果你使用命名空间,'symfony' 组件值得一看。上网搜索:'php auto loader symfony components'
标签: php spl-autoloader