laravel 中的作曲家自动加载

composer autoload in laravel

正在查看 laravel 项目中的 composer.json 文件, 我可以在下面找到

    "autoload": {
    "psr-4": {
        "App\": "app/"
    },
    "classmap": [
        "database/seeds",
        "database/factories"
    ]
},

据我所知 App\:"app/" 表示名称以 space 开头的 App 在 app/ 目录下有它的源文件,它在 psr-4 之后。

但是,vendor 目录下有大量的包,例如以 Illuminate.. 开头的包。 它们是在 psr-4 下还是在 classmap 下?为什么它们没有在 composer.json 文件中声明?

每个包都应该负责自动加载自身

Laravel 视为与其他软件包一样的单个软件包

您可以在每个包中分别找到供应商 composer.json 文件

这是目录结构

<web-root>
    |--------src/
    |           |--------App/
    |           |
    |           |--------Test/
    |
    |---------library/
    |
    |---------vendor/
    |           |
    |           |---------composer/
    |           |           |---------autoload_psr4.php
    |           |           
    |           |----------autoload.php
    |
    |-----------composer.json
    |

你可以看看我的另一个这个自动加载类映射