Sobes.tech
Junior

Šta je automatsko učitavanje klasa u PHP?

sobes.tech АИ

Одговор од АИ

Механизам који омогућава динамичко учитавање фајлова класа (интерфејса, traits), када се они први пут користе у скрипти, уместо да их јасно укључујете помоћу require или include.

Предности:

  • Поједностављује структуру кода.
  • Убрзава извршавање апликације (непотребне класе се не учитавају).
  • Олакшава управљање зависностима.

Реализује се помоћу функције spl_autoload_register(), која региструје функције аутозагрузовања у стеку. Када се покуша да се креира примерак неуређене класе, PHP позива регистроване функције по реду, преносећи име класе као аргумент.

Пример једноставне функције аутозагрузовања:

<?php
// Ова функција ће бити позвана када се покуша користити неуређена класа
spl_autoload_register(function (string $className) {
    // Предпостављамо да се класе чувају у фајловима са екстензијом .php
    // и да име фајла одговара имену класе (осетљиво на велика/мала слова!)
    $filePath = $className . '.php';

    // Проверавамо да ли фајл постоји и укључујемо га
    if (file_exists($filePath)) {
        require_once $filePath;
    }
});

// Пример коришћења класе која ће се аутоматски учитати
$myObject = new MyClass();

Најчешћи стандард за аутозагрузовање је PSR-4. Он дефинише како да се мапирају простори имена класа са путевима до фајлова у датотечном систему.