Если вы используете 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();
Это объясняется в документации, здесь .