作曲家未生成我制作的自动加载文件包

时间:2019-01-04 00:19:32

标签: php composer-php

我讨厌给“自动加载不起作用!!!”的噪音增加更多的信息,但是我似乎无法弄清楚这个问题,我想让它重新审视一下问题更少了。这是我的index.php文件:

<body>

因此,很明显,我正在使用来自作曲家的软件包ShinePHP(这是我制作的一个软件包,我仍在处理文档,因此目前我仅将其用于自己的项目,作曲家只是在制作包管理非常简单!)
无论如何...因为我在写这个问题,显然出现了以下错误:

<?php
declare(strict_types=1);

require_once 'vendor/autoload.php';
require_once 'model/PageNav.php';

use ShinePHP\{Crud, CrudException, EasyHttp, EasyHttpException, HandleData, HandleDataException};

// ALWAYS serve over encrypted channels
try {
    EasyHttp::checkHttps();
} catch (EasyHttpException $ex) {
    echo $ex;
}


try {

    // check if it's a GET request, if it is, serve page, if not, do nothing
    if (EasyHttp::isRequestMethod('GET')) {
        $Page = new PageNav('Home', 'view/home.php');
        $Page->buildPage();
        exit;
    }

} 
catch (EasyHttpException $ex) {
    echo $ex;
}

现在,我还没有手动触摸composer.json文件,因此它是:

Fatal error: Uncaught Error: Class 'ShinePHP\EasyHttp' not found in /Applications/XAMPP/xamppfiles/htdocs/KRTY/src/index.php:11 Stack trace: #0 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/KRTY/src/index.php on line 11

我在使用{ "require": { "adammcgurk/shine-php": "~0.0.1" }, "autoload": { "psr-4": { "ShinePHP\\": "src/" } } } 文件时没有遇到任何错误(并且我尝试将路径更改为vendor/autoload.php这样不存在的内容,这会引发错误,该怎么办?) ,我在Mac OS Mojave的XAMPP上运行PHP 7.2.7版本。这是目录结构,突出显示的index.php文件是上面的代码:
enter image description here

这是vendor/alkdjfladksf/autoload.php的输出:

composer dump-autoload -o

所以...让更多的问题在Stack上出现... 我如何让作曲家使用代码中显示的类自动加载ShinePHP名称空间?

1 个答案:

答案 0 :(得分:2)

此依赖性为does not have any autoloading rules,因此Composer不知道在何处可以找到ShinePHP\EasyHttp类。您需要在composer.json软件包的shine-php中添加自动加载配置:

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