作曲家无法自动加载某些软件包的问题

时间:2019-03-07 21:35:35

标签: php composer-php

我创建了一个包含在作曲家中的软件包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软件包的自动加载失败了?

1 个答案:

答案 0 :(得分:1)

您的软件包(adammcgurk/shine-php)中的自动加载规则不正确。由于您的类位于src/ShinePHP目录中,因此您的自动贴合规则应如下所示:

"autoload": {
    "psr-4": {
        "ShinePHP\\": "src/ShinePHP/"
    }
},