![](/img/trans.png)
[英]Fatal error: Uncaught Error: Class 'maimana\App' not found — slim3
[英]Fatal error: Uncaught Error: Class 'App\Config' not found
我已经构建了一个自定义 MVC 框架。 本地工作正常,当我尝试让它在实时共享托管服务器上工作时,我会收到此错误:
浏览器中的错误消息:
致命错误:未捕获的错误:在 /www/htdocs/user/project/public/index.php:19 中找不到类 'App\Config' 堆栈跟踪:在 /www/htdocs/user/project/ 中抛出 #0 {main}第 19 行的 public/index.php
Composer.json 文件:
{
"require": {
"filp/whoops": "^2.3",
"phpmailer/phpmailer": "^6.0"
},
"autoload": {
"psr-4": {
"Core\\": "core/",
"App\\": "app/"
}
}
}
我的文件夹和文件结构:(整个项目在文件夹内:“项目”)
索引.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']);
配置.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';
}
我部署到服务器的方法:
composer install
(我也试过: composer install --no-dev
)我现在已经重复了这个过程几次,但它仍然无法正常工作
就我而言,问题是由在 Windows 中使用符号链接引起的。 我正在使用 WAMP 和 PHP 框架 CodeIgniter(版本 4.2.1)。 某些版本的 CodeIgniter 有这个问题。
可能的原因:
我认为原因是使用了 PHP 函数 file_exists。 在某些情况下,当路径包含带有某些字符的符号链接时,该函数会返回 FALSE。 或者问题在于清理文件名。
可能的解决方案:
解决方案 5 对我来说是最简单的。 我必须删除符号链接名称中的方括号 (),这解决了问题。
也许这对其他人有帮助。
我刚刚尝试做同样的事情,它似乎工作,检查这个:
/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;
}
}
这是区分大小写的问题 - 您的自动加载规则使用app
作为目录名称,但这实际上是App
。 这可能适用于不区分大小写的文件系统 (Windows),但不适用于区分大小写的文件系统 (Linux)。 您应该将自动加载规则修复为:
{
"require": {
"filp/whoops": "^2.3",
"phpmailer/phpmailer": "^6.0"
},
"autoload": {
"psr-4": {
"Core\\": "Core/",
"App\\": "App/"
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.