Функція __autoload в php
Відео: PHP Magic Methods in Hindi (__autoload ()) 2/15
Ті, хто створює досить великі сайти зазвичай використовує ООП. І вкрай бажано кожен клас зберігати в окремому файлі, однак, через це виникає необхідність підключати велику кількість файлів, через що сильно страждає інкапсуляція ООП. Адже Вам для впровадження нового класу доведеться його підключати в інші файли, а в ідеалі хотілося б старі файли при додаванні нової функціональності не змінювати. Вирішити дану проблему допоможе відносно нова функція в PHP - __autoload (), про яку ми сьогодні і поговоримо.
Якщо коротко, то функція __autoload () викликається, коли ми намагаємося створити об`єкт класу, якого ще не існує (наприклад, просто не підключений файл).
Тепер розберемо приклад. Припустимо, у нас є 2 класу: A і B. І нехай вони знаходяться в файлах "a_class.php"І"b_class.php"Відповідно. Якщо ми напишемо в окремому файлі такий код, то у нас виникне помилка через невизначених класів:
$ a =new A() -
$ b =new B() -
Можна підключити їх за допомогою require_once, але тоді ми повертаємося до початку статті. Щоб цього не робити, використовуємо функцію __autoload () в PHP:
Відео: php # 39; s autoload function in action Part 1
function __autoload($ class_name){
require_once $ class_name."_class.php"-
}
$ a =new A() -
$ b =new B() -
Тепер ніяких помилок не відбувається і обидва об`єкти будуть успішно створені.
Відео: Урок 12. PHP - ООП. Автоматичне завантаження класів. Пакетний менеджер composer
Тобто за відсутності підключеного файлу PHP передає в функцію __autoload () ім`я класу. І всередині цієї функції вже підключається відповідний файл. Якщо ж раптом і там нічого не підключиться, тоді вже буде помилка.
Ось така корисна функція дозволить Вам, з одного боку, скоротити код, з іншого боку, код буде більш високої якості. Але зверніть увагу, що функція __autoload () з`явилася лише в PHP 5. На щастя, більшість хостингів давно мають цією версією PHP. Якщо раптом у Вас не так, то напишіть їм на підтримку з проханням оновитися, або змініть хостинг.
Відео: Learn Object Oriented PHP # 35 - Autoload Classes
А якщо у Вас затруденіі по ООП і його використання при створенні сайтів, то рекомендую Вам пройти мій детальний навчальний курс: PHP і MySQL з Нулі до Гуру.
- Як створити об`єкт по імені класу в php
- Як використовувати файли tpl
- Як зробити зміст у excel.
- Які ставити права доступу на хостингу
- Абстрактні класи в php
- Вивчаємо coffeescript. Класи.
- Константи в php
- Серіалізация об`єктів в php.
- Об`єкт object в jаvascript
- Інтерфейси в php
- Reflection api. Reflectionclass.
- Простори назв в php.
- Статичні властивості і методи в php
- Клас для роботи з базою даних
- Поняття ооп в jаvascript
- Створення класу в php
- Reflection api. Reflectionobject.
- Reflection api. Reflectionmethod.
- Reflection api. Reflectionproperty.
- Підключення в php сторонніх файлів
- Спадкування класів в php