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

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

Всім привіт. У цій статті я розповім про автоматичне підключення файлів в php за допомогою spl_autoload.

На сайті вже була стаття про магічний метод __autoload, який робив те ж саме, проте через своїх недоліків він досить швидко застарів. А на зміну йому прийшла функція spl_autoload. Ось давайте про неї і поговоримо.

всередину функції spl_autoload_register ви можете передати анонімну, або лямбда функцію, яка буде щось робити, наприклад, підключати файли.

lt ;?php
spl_autoload_register
(function($ name){
require`Classes /`.$ name.`.php`-
}) -
?gt;



Також, ви можете винести цю функцію окремо, а в spl_autoload_register передати строкове значення з назвою вашої функції.

Відео: 2. Конструктори, автозавантаження, успадкування

lt ;?php
function autoLoader($ name){
require`Classes /`.$ name.`.php`-
}

spl_autoload_register
(`AutoLoader`) -
?gt;

За допомогою spl_autoload_extensions ви можете вказати значення розширень за замовчуванням для функції spl_autoload.

spl_autoload_extensions(`.php`) -
spl_autoload_register
() -



Тепер будуть шукатися файли з розширенням .php. Якщо ви захочете вказати більше розширень, то вкажіть їх все через кому.

spl_autoload_extensions(`.php, .php4, .php3, .class.php`) -

За допомогою spl_autoload_register ви можете зареєструвати відразу кілька функцій, всі вони будуть поміщені в стек. Яка була раніше зареєстрована, та й буде первее.

spl_autoload_register(`AutoLoader1`) -
spl_autoload_register
(`AutoLoader2`) -

Якщо ви хочете подивитися всі зареєстровані функції, то ви можете скористатися функцією spl_autoload_functions, яка повертає масив.

Відео: ООП в PHP - 2. Створення розширюваних класів

print_r(spl_autoload_functions()) -

Якщо ви захочете видалити якусь з функцій в стеці автозавантаження, то достатньо скористатися spl_autoload_unregister, передавши назву потрібної функції.

spl_autoload_unregister(`AutoLoader1`) -

Ось і все, що потрібно знати про цю можливість. Використовуйте саме цей автозавантажувач, а не магічний метод __autoload (), тому що spl_autoload більш гнучкий і новіше. Дякую за увагу і вдалого кодинга!

Поділися в соціальних мережах:

Схожі
Nodejs. Як записувати дані в потік.Nodejs. Як записувати дані в потік.
Nodejs. Оброблювач подій.Nodejs. Оброблювач подій.
Відмінності між function declaration і function expression в jаvascript.Відмінності між function declaration і function expression в jаvascript.
Створення движка на mvc. Допрацьовуємо роутер.Створення движка на mvc. Допрацьовуємо роутер.
Nodejs. Модулі.Nodejs. Модулі.
Функція __autoload в phpФункція __autoload в php
Що нового в php7.1: нові повідомлення про помилки.Що нового в php7.1: нові повідомлення про помилки.
Створення об`єктів в jаvascriptСтворення об`єктів в jаvascript
Створення движка на mvc. Починаємо роботу з базою даних.Створення движка на mvc. Починаємо роботу з базою даних.
Серіалізация об`єктів в php.Серіалізация об`єктів в php.
» » Автоматичне завантаження класів в php з використанням spl_autoload.