Я создаю проект PHP и хочу реализовать автозагрузку PSR-4.
Я не знаю, какие файлы мне нужно создать в каталоге поставщика, чтобы реализовать автозагрузку для файлов классов.
Я создаю проект PHP и хочу реализовать автозагрузку PSR-4.
Я не знаю, какие файлы мне нужно создать в каталоге поставщика, чтобы реализовать автозагрузку для файлов классов.
Если вы используете composer
, вы не создаете автозагрузчик, а позволяете composer
выполнять свою работу и создавать его за вас.
Единственное, что вам нужно сделать, это создать соответствующую конфигурацию на composer.json
и выполнить composer dump-autoload
.
E.g.:
{
"autoload": {
"psr-4": {"App\\": "src/"}
}
}
Выполнив вышеуказанное, если у вас есть такая файловая структура
├── src/
│ ├── Controller/
│ ├── Model/
│ ├── View/
│ └── Kernel.php
├── public/
│ └── index.php
└── vendor/
После выполнения composer dump-autoload
автозагрузчик будет создан на vendor/autoload.php
.
Все ваши классы должны быть вложены в пространство имен App
, и вы должны поместить только один класс для каждого файла.
E.g.:
<?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();
Это объясняется в документации, здесь.