Signatur
Beschreibung
phpdbg_get_executable() ist eine Funktion, die ausschließlich im Kontext des interaktiven PHP-Debuggers PHPDBG (phpdbg) zur Verfügung steht. Sie gibt ein assoziatives Array zurück, das alle ausführbaren Opcodes des aktuell geladenen Skripts enthält. Dies ist nützlich, um eine genaue Übersicht über erreichbaren Code zu erhalten und gezielt Code-Coverage-Analysen durchzuführen.
Die Funktion eignet sich besonders für Entwickler, die verstehen möchten, welche Teile eines Skripts tatsächlich ausgeführt werden können (d. h. erreichbare Opcodes besitzen) – etwa beim Testen von Code-Abdeckung oder beim Debuggen von Optimierungsproblemen.
Über den optionalen Parameter options kann das Verhalten der Funktion gesteuert werden, z. B. ob nur bestimmte Dateien oder Klassen berücksichtigt werden sollen. Das zurückgegebene Array ist nach Dateinamen und Zeilennummern strukturiert und enthält jeweils die zugehörigen Opcode-Informationen.
Wichtig: Diese Funktion ist nur innerhalb einer aktiven PHPDBG-Sitzung verfügbar und führt außerhalb dieses Kontexts zu einem fatalen Fehler.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $options | array | [] | Ein assoziatives Array mit optionalen Steuerschlüsseln. Mögliche Schlüssel sind z. B. "from" (Startklasse/-datei) und "quiet" (unterdrückt Ausgaben). Wird kein Array übergeben, werden alle ausführbaren Opcodes des gesamten Skripts zurückgegeben. |
Rückgabewert
Beispiele
Alle ausführbaren Opcodes des aktuellen Skripts abrufen
<?php
// Nur innerhalb einer PHPDBG-Sitzung ausführen!
if (function_exists('phpdbg_get_executable')) {
$opcodes = phpdbg_get_executable();
foreach ($opcodes as $file => $lines) {
echo "Datei: $file\n";
foreach ($lines as $lineNo => $info) {
echo " Zeile $lineNo: " . print_r($info, true) . "\n";
}
}
} else {
echo "phpdbg_get_executable ist nur in PHPDBG verfügbar.\n";
}
Ausführbare Opcodes mit Optionsfilter abrufen
<?php
// Nur innerhalb einer PHPDBG-Sitzung ausführen!
if (function_exists('phpdbg_get_executable')) {
// Nur Opcodes aus einer bestimmten Klasse ermitteln
$opcodes = phpdbg_get_executable([
'from' => 'MeineKlasse',
]);
echo "Anzahl betroffener Dateien: " . count($opcodes) . "\n";
print_r($opcodes);
}
// Wichtig · Fallstricke
Nur in PHPDBG verfügbar: phpdbg_get_executable() ist ausschließlich in der PHPDBG-Umgebung definiert. Der Aufruf außerhalb von PHPDBG führt zu einem fatalen Fehler (Call to undefined function). Prüfe daher stets mit function_exists('phpdbg_get_executable'), bevor du die Funktion verwendest.
Die Funktion ist besonders nützlich im Zusammenspiel mit phpdbg_start_oplog() und phpdbg_end_oplog(), um Code-Coverage-Daten zu erzeugen und unausgeführte Zweige zu identifizieren.
Die genaue Struktur des zurückgegebenen Arrays kann je nach PHP-Version und Skript variieren; verlasse dich nicht auf eine feste Schlüsselstruktur ohne vorherige Prüfung.