spl_autoload_functions în PHP

Returnează lista autoloader-elor înregistrate, în ordinea în care sunt încercate.

Sintaxă
spl_autoload_functions(): array

Ce face spl_autoload_functions

Fiecare element este funcția înregistrată: un nume, o closure sau un tablou [clasa, metoda]. Lista este goală dacă nu ai înregistrat niciun autoloader. Este utilă la depanare, de exemplu când vrei să vezi dacă Composer și-a înregistrat autoloader-ul.

Ce returnează

Un tablou cu autoloader-ele.

Exemple

Exemplul 1: Ce autoloadere sunt active

<?php
class Incarcator
{
    public static function incarca(string $clasa): void {}
}

var_dump(spl_autoload_functions());

spl_autoload_register([Incarcator::class, "incarca"]);
spl_autoload_register(fn($clasa) => null);

foreach (spl_autoload_functions() as $f) {
    echo is_array($f) ? implode("::", $f) : get_class($f);
    echo "\n";
}

Rezultat

array(0) {
}
Incarcator::incarca
Closure

Greșeli frecvente

  • Te aștepți ca funcția să returneze false când nu există autoloadere (așa era înainte de PHP 8). Acum returnează un tablou gol.

Comenzi înrudite

  • spl_autoload_register: Înregistrează o funcție care încarcă automat fișierul unei clase prima dată când clasa este folosită.
  • spl_autoload_unregister: Scoate un autoloader din lista celor înregistrate cu spl_autoload_register.