我创建了一个包含在作曲家中的软件包ShinePHP(https://packagist.org/packages/adammcgurk/shine-php#0.0.4),并且可以自动加载等正常工作,但是现在自动加载突然关闭了。没有理由,我没有碰过composer.json文件,我真的没有碰到库中的任何东西,我只是遇到了错误:
>
严重错误:未捕获的错误:找不到类'ShinePHP \ EasyHttp' /Applications/XAMPP/xamppfiles/htdocs/manager-reporting/src/index.php:12 堆栈跟踪:抛出#0 {main} /Applications/XAMPP/xamppfiles/htdocs/manager-reporting/src/index.php 在第12行
以下是该代码的调用方式:
<?php
declare(strict_types=1);
session_start();
require_once 'vendor/autoload.php';
require_once 'model/Page.php';
require_once 'model/Auth.php';
use ShinePHP\{Crud, CrudException, HandleData, HandleDataException, EasyHttp, EasyHttpException};
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
try {
EasyHttp::checkHttps();
} catch (EasyHttpException $ehe) {
// Google Analytics
echo $ehe->getMessage();
exit;
}
我知道这个特定的库有问题,因为我还在Composer中安装了PHPMailer,我只是尝试使用以下方法实例化PHPMailer:
$mail = new PHPMailer(true);
它没有问题。
我已经跑了:
composer dumpautoload
得到了这个回应:
Generating autoload files
为什么我的ShinePHP软件包的自动加载失败了?
答案 0 :(得分:1)
您的软件包(adammcgurk/shine-php
)中的自动加载规则不正确。由于您的类位于src/ShinePHP
目录中,因此您的自动贴合规则应如下所示:
"autoload": {
"psr-4": {
"ShinePHP\\": "src/ShinePHP/"
}
},