致命错误:未捕获的错误:找不到类“App\Config”
Posted
技术标签:
【中文标题】致命错误:未捕获的错误:找不到类“App\\Config”【英文标题】:Fatal error: Uncaught Error: Class 'App\Config' not found致命错误:未捕获的错误:找不到类“App\Config” 【发布时间】:2019-07-15 08:36:16 【问题描述】:我已经构建了一个自定义 MVC 框架。 本地工作正常,当我尝试让它在实时共享托管服务器上工作时,我会收到此错误:
浏览器中的错误消息:
致命错误:未捕获的错误:在 /www/htdocs/user/project/public/index.php:19 中找不到类 'App\Config' 堆栈跟踪:在 /www/htdocs/user 中抛出 #0 main /project/public/index.php 第 19 行
Composer.json 文件:
"require":
"filp/whoops": "^2.3",
"phpmailer/phpmailer": "^6.0"
,
"autoload":
"psr-4":
"Core\\": "core/",
"App\\": "app/"
我的文件夹和文件结构:(整个项目在文件夹内:“project”)
Index.php 文件
<?php
/**
* Front controller
*/
use App\Config;
/**
* Composer autoloading
*/
require dirname(__DIR__) . '/vendor/autoload.php';
/**
* Whoops Error and Exception handling
*/
if (Config::SHOW_ERRORS == true)
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
/**
* Sessions
*/
session_start();
/**
* Routing
*/
$router = new Core\Router();
// Add the routes
$router->add('', ['controller' => 'Home', 'action' => 'index']);
Config.php 文件:
<?php
/**
* Application configuration
*/
namespace App;
class Config
/**
* Database host
* @var string
*/
const DB_HOST = 'localhost';
/**
* Mail SMTP Port
* @var int
*/
const SMTP_PORT = '2525';
我部署到服务器的方法:
-
压缩本地文件并导出 mysql 数据库
上传压缩包到服务器 -> 解压
上传数据库到phpmyadmin
在配置文件中更改数据库凭据
运行
composer install
(我也试过:composer install --no-dev
)
完成
这个过程我已经重复了好几次了,但是还是不行
【问题讨论】:
试试composer dump-autoload
两个系统是否运行相同的操作系统? (app/
与 App/
)
在 index.php 中您是否正在加载 composer 自动加载文件?
composer dump-autoload 没有带来任何变化 我已将 index.php 添加到帖子中,请查看
您应该在使用 App/Config 之前使用自动加载。
【参考方案1】:
我刚刚尝试做同样的事情,它似乎工作,检查这个:
/index.php
<?php
require dirname(__DIR__) . '/vendor/autoload.php'; // It must be called first
use App\Config;
echo Config::get('test');
// Result: test
/App/Config.php
namespace App;
class Config
public function get($str)
return $str;
【讨论】:
【参考方案2】:这是区分大小写的问题 - 您的自动加载规则使用 app
作为目录名称,但这实际上是 App
。这可能适用于不区分大小写的文件系统 (Windows),但不适用于区分大小写的文件系统 (Linux)。您应该将自动加载规则修复为:
"require":
"filp/whoops": "^2.3",
"phpmailer/phpmailer": "^6.0"
,
"autoload":
"psr-4":
"Core\\": "Core/",
"App\\": "App/"
【讨论】:
以上是关于致命错误:未捕获的错误:找不到类“App\Config”的主要内容,如果未能解决你的问题,请参考以下文章
为啥致命错误:未捕获的错误:找不到类“Illuminate\Foundation\Application”
为啥我收到 PHP 致命错误:未捕获的错误:找不到类“MyClass”? [复制]
我有这样的问题期待帮助致命错误:未捕获的错误:找不到类'Illuminate\Foundation\Application'[重复]