Автоматичне завантаження класів

Більшість розробників об'єктно-орієнтованих додатків використовують таку угоду іменування файлів, в якій кожен клас зберігається в окремо створеному для нього файлі. Одна з найбільших неприємностей - необхідність писати на початку кожного скрипта довгий список файлів, що підвантажуються (по одному для кожного класу).

Функцияspl_autoload_register() дозволяє зареєструвати необхідну кількість автозавантажувачів для автоматичного завантаження класів та інтерфейсів, якщо вони не визначені. Реєструючи автозавантажувачі, PHP отримує останній шанс для інтерпретатора завантажити клас, перш ніж він закінчить виконання скрипта з помилкою.

Будь-яка конструкція, подібна до класу може бути автоматично завантажена таким же чином, включаючи класи, інтерфейси, трейти та перерахування.

Застереження

До PHP 8.0.0 можна було використати __autoload() для автозавантаження класів та інтерфейсів. Однак це менш гнучка альтернатива spl_autoload_register(), функция__autoload() оголошено застарілою в PHP 7.2.0 і видалено в PHP 8.0.0.

Зауваження :

Функцияspl_autoload_register() може бути викликана кілька разів, щоб зареєструвати кілька автозавантажувачів. Викид виключення з автозавантаження, однак, перерве цей процес і не дозволить запускати подальші функції автозавантаження. З цієї причини викидати винятки з функції автозавантаження не рекомендується.

Приклад #1 Приклад автоматичного завантаження

У цьому прикладі функція намагається завантажити класи MyClass1иMyClass2 з файлів MyClass1.php та MyClass2.php відповідно.

Loading...

Приклад #2 Ще один приклад автоматичного завантаження

У цьому прикладі подано спробу завантаження інтерфейсу ITest

Loading...

Дивіться також