composer автозагрузка в laravel - PullRequest
0 голосов
/ 12 марта 2020

Глядя на файл composer. json в проекте laravel, я могу найти ниже

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

, насколько я знаю, App \: "app /" означает, что пространство имен начинается с Приложение имеет свои исходные файлы в каталоге app / и следует psr-4.

однако в каталоге вендора есть тонны пакетов, например, пакеты начинаются с Illuminate. Находятся ли они в psr-4 или classmap? почему они не объявлены в файле composer. json?

1 Ответ

1 голос
/ 12 марта 2020

Каждый пакет должен отвечать за автозагрузку.

Рассматривать Laravel как отдельный пакет, как другие

. В каждом пакете вы можете найти файлы composer.json vendor. отдельно

Вот структура каталогов

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

Вы можете посмотреть мой другой ответ для этой карты классов автозагрузки

...