Php Composer PSR-4 autoload在尝试多种方法和教程后不起作用

Php Composer PSR-4 autoload在尝试多种方法和教程后不起作用,php,composer-php,psr-4,Php,Composer Php,Psr 4,我正在为我的框架的功能制作一个composer库,但我遇到了这个问题,问题是psr-4的自动加载 我的配置 我有以下结构 ├───src ├───test └───vendor ├───composer ├───symfony │ ├───polyfill-ctype │ └───polyfill-mbstring │ └───Resources │ └───unidata ├───twig

我正在为我的框架的功能制作一个composer库,但我遇到了这个问题,问题是psr-4的自动加载

我的配置 我有以下结构

├───src
├───test
└───vendor
    ├───composer
    ├───symfony
    │   ├───polyfill-ctype
    │   └───polyfill-mbstring
    │       └───Resources
    │           └───unidata
    ├───twig
    │   └───twig
    │       ├───doc
    │       │   ├───filters
    │       │   ├───functions
    │       │   ├───tags
    │       │   └───tests
    │       └───src
    │           ├───Cache
    │           ├───Error
    │           ├───Extension
    │           ├───Loader
    │           ├───Node
    │           │   └───Expression
    │           │       ├───Binary
    │           │       ├───Filter
    │           │       ├───Test
    │           │       └───Unary
    │           ├───NodeVisitor
    │           ├───Profiler
    │           │   ├───Dumper
    │           │   ├───Node
    │           │   └───NodeVisitor
    │           ├───RuntimeLoader
    │           ├───Sandbox
    │           ├───Test
    │           ├───TokenParser
    │           └───Util
    └───xenframe
        └───hello
            └───src
最后一个文件夹是MyLibrary,其中包含hello文件夹

在hello文件夹的根目录中,我有一个
composer.json
和一个
src
文件夹

composer.json

{
“name”:“xenframe/hello”,
“类型”:“库”,
“许可证”:“麻省理工学院”,
“作者”:[
{
“名称”:“XENONMC”,
“电子邮件”:support@xenonmc.xyz"
}
],
“最低稳定性”:“稳定”,
“要求”:{
},
“自动加载”:{
“psr-4”:{
“你好\\”:“/src”
}
}
}
src/
文件夹内是主文件->
index.php

index.php


在测试给定代码时,通过将
src
中的
index.php
重命名为与文件中的类名相关的
App.php
来解决问题。在
composer.json
psr-4
部分中也使用了
“xenframe\\hello\\”:“src/”

另外值得一提的是,尽管composer由于PSR-4不合规而无法自动加载所需的类,但composer没有报告任何错误

问题是:

  • 类的文件名不正确符合。从
  • 终止类名对应于以
    .php
    结尾的文件名。文件名必须与终止类名的大小写匹配

  • composer.json的
    psr-4
    部分中提到的
    名称空间
    与类文件中使用的
    名称空间
    不匹配。从
  • psr-4
    键下,定义从名称空间到路径的映射(相对于包根)。当自动加载类(如
    Foo\\Bar\\Baz
    时,指向目录
    src/
    的命名空间前缀
    Foo\\\
    意味着自动加载程序将查找名为
    src/Bar/Baz.php的文件,并将其包含(如果存在)


    运行
    composer update
    时,出现了什么错误…?它是本地安装的,我没有看到任何错误,我尝试
    composer dumpautoload
    重新生成autoload composer.json。我想应该是“xenframe\\hello\\”:“xenframe/hello/src/”哦,我只是在测试你的代码。我必须在
    src
    中将
    index.php
    重命名为
    App.php
    ,这与文件中的类名有关。还使用了
    composer.json
    中的
    psr-4
    部分中的
    “xenframe\\hello\\”:“src/”
    ,它开始工作。您尝试了哪些方法使您的代码符合PSR4?如果有任何错误信息,请编辑您的问题,以包含它-我会假设它包含一个关于什么是错误的提示