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(). |