Composer PSR-4自动加载报错:找不到DieEcho类求助
你遇到的问题本质是Composer的自动加载机制找不到项目目录外的DieEcho类——Composer默认只会扫描项目内部目录,需要手动配置命名空间与外部目录的映射。下面是具体的解决步骤:
第一步:修改project84目录下的composer.json配置
打开project84/composer.json,找到autoload节点(没有的话就新增),添加PSR-4规则,指定Trzczy\Debug命名空间对应的外部目录路径:{ "autoload": { "psr-4": { "Trzczy\\Debug\\": "../../debug/php/" } } }这里的
../../debug/php/是相对于project84目录的路径,因为你的debug目录和project84是同级的,需要往上退两级才能定位到debug/php目录。第二步:重新生成Composer自动加载文件
切换到project84目录下,执行以下命令:composer dump-autoload一定要确保在
project84目录下执行,否则Composer会找不到当前项目的配置文件。第三步:确认DieEcho.php的命名空间与类名正确性
打开debug/php/DieEcho.php,检查顶部的命名空间声明是否正确,类名是否与文件名完全一致(Linux系统对大小写敏感,注意区分):<?php namespace Trzczy\Debug; class DieEcho { // 类的具体实现代码 }第四步:确保index.php引入了Composer自动加载文件
在project84/public/index.php的最顶部,添加自动加载文件的引入代码:<?php require __DIR__ . '/../vendor/autoload.php'; // 之后再调用DieEcho类 use Trzczy\Debug\DieEcho; $dieEcho = new DieEcho();
完成以上步骤后,应该就能正确加载外部目录的DieEcho类了。如果问题仍存在,可以检查路径是否拼写错误,或者确认Composer版本是否支持当前的PSR-4配置。
内容的提问来源于stack exchange,提问作者trzczy

