Clasa ReflectionExtension (Introspecția Extensiilor în Timp de Rulare) în PHP

Clase și obiecte PHP Reflection API

Clasa orientată pe obiecte ReflectionExtension: inspectarea versiunii, constantelor, claselor, funcțiilor, dependențelor și setărilor INI ale oricărui modul încărcat în PHP.

Sintaxă
$ext = new ReflectionExtension('curl'); echo $ext->getVersion();

Clasa ReflectionExtension face parte din puternicul motor de introspecție Reflection API din PHP. Ea permite unui script PHP să analizeze în mod programatic, în timpul rulării, toate detaliile despre un modul sau o extensie compilată: versiunea exactă, dependențele de alte extensii, lista completă de clase și interfețe definite, funcțiile globale și valorile directivelor php.ini specifice acelei extensii.

Inspectarea automată a mediului de producție prin ReflectionExtension
<?php

declare(strict_types=1);

try {
    // 1. Instanțierea reflectorului pe extensia dorită
    $ext = new ReflectionExtension('curl');

    echo "Nume extensie: " . $ext->getName() . "\n";
    echo "Versiune extensie: " . ($ext->getVersion() ?? 'N/A') . "\n";
    echo "Număr funcții exportate: " . count($ext->getFunctions()) . "\n";
    echo "Este persistentă (compilată static): " . ($ext->isPersistent() ? 'Da' : 'Nu') . "\n";

    // 2. Afișarea tuturor directivelor INI controlate de acest modul
    echo "\nDirective INI:\n";
    foreach ($ext->getINIEntries() as $directiva => $valoare) {
        echo "  - {$directiva} = '{$valoare}'\n";
    }

    // 3. Verificarea dependențelor de alte extensii
    echo "\nDependențe:\n";
    print_r($ext->getDependencies());

} catch (ReflectionException $e) {
    echo "Eroare: Extensia nu este instalată sau activată pe acest server!";
}

Cele Mai Utile Metode ale Clasei ReflectionExtension

Metodă Ce returnează
getVersion() Șir cu versiunea extensiei sau null.
getClasses() Un array de obiecte ReflectionClass pentru toate clasele din extensie (ex: PDO, PDOStatement).
getFunctions() Un array de obiecte ReflectionFunction pentru toate funcțiile globale furnizate.
getConstants() Un array asociativ cu toate constantele definite de modul.
getINIEntries() Toate directivele din php.ini pe care acest modul le controlează.
info() Afișează secțiunea dedicată acestei extensii exact așa cum apare în phpinfo().