Используем автозгрузчик Composer для своего проекта

composer

Для прохождения этого тура у вас должен быть установлен PHP и глобально установлен Composer.

Создаем файл composer.json следующего содержания:

{
  "name": "delgus/learn-php",
  "autoload": {
    "psr-4": {
      "LearnPHP\\": "src/"
    }
  }
}

Здесь name - название вашего пакета, а секция autoload указывает, что под ключом psr-4 вы определяете отображение пространств имен на пути относительно корня пакета. При автоматической загрузке класса, такого например как LearnPHP\models\Bar, префикс пространства имен LearnPHP\\, укажет  на  src/ и  автозагрузчик будет искать файл с именем src/models/Bar.php и включать его, если он присутствует.

Документация autoload -  https://getcomposer.org/doc/04-schema.md#psr-4

Создадим директорию src, внутри директорию models,а внутри models тестовый класс Bar.

<?php
//указываем пространство имен
namespace LearnPHP\models;


class Bar
{
    public function test()
    {
        echo "Hello";
    }
}
?>

Создадим единую точку входа в корневой директории - index.php. Подключаем автозагрузчик в нем,создаем объект  класса LearnPHP\models\Bar и вызываем функцию test;

<?php
require __DIR__ . '/vendor/autoload.php';

$bar = new \LearnPHP\models\Bar();
$bar->test();


Примечание: Пока у вас еще нет директории vendor и файла autoload.php. Так и должно быть.

Вызовем в консоли команду:

composer dump-autoload

Если теперь в консоли вызвать php index.php - увидим Hello. Все работает. Магия!