【发布时间】:2016-05-20 19:03:03
【问题描述】:
我在本地(WAMP)制作了一个 MVC 项目,它运行完美。但是当我将它部署在 Web 服务器中时会出现此错误:
Fatal error: Class 'Core\App' not found in home/dmlink/public_html/public/index.php on line 14
这是第14行的代码:
13: spl_autoload_register('autoload_classes');
14: $app = new \Core\App;
15: $app->render();
项目结构:
- app:这里是控制器、模型和视图。
- 核心:这里是核心文件。
- public:因为这个目录运行应用程序。
我在网络服务器中获得了与本地主机相同的版本:
- php 5.5
- 阿帕奇 2.4
这是索引的完整代码:
define('PROJECT_PATH', dirname(__DIR__));
define('APP_PATH', PROJECT_PATH . '/app');
function autoload_classes($class_name){
$file = PROJECT_PATH . '/' . str_replace('\\', '/', $class_name) . '.php';
if (is_file($file)) {
include_once $file;
}
}
spl_autoload_register('autoload_classes');
$app = new \Core\App;
$app->render();
导致此错误的任何想法 顺便谢谢你。
【问题讨论】:
-
你在使用作曲家吗?如果没有,它允许您自动加载您的类并下载任何其他依赖项并自动加载它们。
-
我使用 slp_autoload_register() 来加载 Core 文件夹中的所有类。
-
您注册/包含核心文件的路径了吗?检查phpinfo以防万一?否则尝试重新启动服务器。
-
我在 .htaccess 文件中添加了 php.ini 文件的路径(php_value inlcude_path),我尝试通过添加 set_include_path() 函数来设置路径,但不起作用
-
如果您检查了文件实际上包含在两台服务器上,那么它一定是服务器之间的配置差异。检查您的 apache 和 php.ini 设置。两台服务器都允许文件包含吗?
标签: php model-view-controller namespaces fatal-error classnotfound