Функція __autoload в php

Відео: PHP Magic Methods in Hindi (__autoload ()) 2/15

Функція __autoload в PHP

Ті, хто створює досить великі сайти зазвичай використовує ООП. І вкрай бажано кожен клас зберігати в окремому файлі, однак, через це виникає необхідність підключати велику кількість файлів, через що сильно страждає інкапсуляція ООП. Адже Вам для впровадження нового класу доведеться його підключати в інші файли, а в ідеалі хотілося б старі файли при додаванні нової функціональності не змінювати. Вирішити дану проблему допоможе відносно нова функція в 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Абстрактні класи в php
Reflection api. Reflectionproperty.Reflection api. Reflectionproperty.
Reflection api. Reflectionclass.Reflection api. Reflectionclass.
Об`єкт object в jаvascriptОб`єкт object в jаvascript
Як зробити зміст у excel.Як зробити зміст у excel.
Простори назв в php.Простори назв в php.
Створення класу в phpСтворення класу в php
Серіалізация об`єктів в php.Серіалізация об`єктів в php.
Reflection api. Reflectionobject.Reflection api. Reflectionobject.
Клас для роботи з базою данихКлас для роботи з базою даних
» » Функція __autoload в php