Автоматичне завантаження класів в 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 більш гнучкий і новіше. Дякую за увагу і вдалого кодинга!
- Drag and drop завантаження файлів на сервер. Частина 3.
- Що нового в php7.1: нові повідомлення про помилки.
- Як використовувати інтерфейс countable в php.
- Nodejs. Як записувати дані в потік.
- Що таке замикання в jаvascript.
- Nodejs. Як працюють function expression.
- Nodejs. Як створити "список справ". Частина 2.
- Nodejs. Оброблювач подій.
- Функція __autoload в php
- Функція sscanf в php
- Методи для роботи з масивами в es5.
- Серіалізация об`єктів в php.
- Вивчаємо coffeescript. Функції.
- Nodejs. Модулі.
- Відмінності між function declaration і function expression в jаvascript.
- Анонімні, або лямбда-функції в php.
- Об`єкти, прототипи і конструктори в мові jаvascript.
- Створення об`єктів в jаvascript
- Підключення в php сторонніх файлів
- Створення движка на mvc. Починаємо роботу з базою даних.
- Створення движка на mvc. Допрацьовуємо роутер.