php Composer说类不符合psr-4自动加载,但代码仍然工作[重复]

xyhw6mcr  于 5个月前  发布在  PHP
关注(0)|答案(1)|浏览(85)

此问题在此处已有答案

Class Foo\Bar\Baz located in ./foo/bar/utility/baz.php does not comply with psr-4 autoloading standard. Skipping(2个答案)
5天前关闭。
MyApp\src\models文件夹中的Test类:

<?php

namespace MyApp\Models;

class Test 
{

    function __construct() {
        echo "class Test running...";
    }

}

字符串
项目根目录下的索引页:

<?php

require_once realpath("vendor/autoload.php");

use MyApp\Models\Test;

$test = new Test();


但当我运行命令时:

composer dump-autoload -o


错误消息显示:

MyApp/src\models\Test.php does not comply with psr-4 autoloading standard. Skipping.


但是它还是生成了autoload.php和其他文件的供应商文件夹。index.php工作正常。那么我在这里缺少什么呢?

q9rjltbz

q9rjltbz1#

According to the spec,您需要在FirstCaps中拥有名称空间路径。
你的路径是nMyApp\src\models,但你的命名空间是FirstCap:

<?php
namespace MyApp\Models;

字符串
如果你重命名你的文件夹为MyApp\src\Models,你应该可以了。
如果你已经将代码提交到git,并且在Windows PC上,请注意,由于NTFS和FAT文件系统都不区分大小写,将文件夹从models重命名为Models可能会遇到问题。你可能必须从models重命名为somethingelse(并提交),然后重命名为Models(并再次提交)

相关问题