Как создать автозагрузчик PSR-4 для моего проекта? - PullRequest
0 голосов
/ 29 марта 2020

Я создаю проект PHP и хочу реализовать автозагрузку PSR-4.

Я не знаю, какие файлы мне нужно создать в каталоге поставщика для реализации автозагрузки для файлов классов.

1 Ответ

5 голосов
/ 01 апреля 2020

Если вы используете composer, вы не создаете автозагрузчик, но позволяете composer выполнить свою работу и создать его для вас.

Единственное, что вам нужно сделать, - это создать соответствующую конфигурацию на composer.json и выполнить composer dump-autoload.

Например:

{
    "autoload": {
        "psr-4": {"App\\": "src/"}
    }
}

Если вы выполните описанную выше структуру файла, как это

├── src/
│   ├── Controller/
│   ├── Model/
│   ├── View/
│   └── Kernel.php
├── public/
│   └── index.php
└── vendor/

После выполнения composer dump-autoload автозагрузчик будет сгенерирован на vendor/autoload.php.

Все ваши классы должны быть вложены в пространство имен App, и вы должны поместить только один класс на файл.

Например:

<?php /* src/Controller/Home.php */

namespace App\Controller;

class Home { /* implementation */ }

И вам нужно только включить автозагрузчик в ваш скрипт точки входа (например, index.php).

<?php

require '../vendor/autoload.php';

, который позволит вам просто загружать ваши классы прямо из где-нибудь после этой точки, например:

use App\Controller\Home;

$homeController = new Home();

Это объясняется в документации, здесь .

...