#pragma once #include #include #include #include // --------------------------------------------------------------------------- // FunctionScanner – Scannt PHP-Dateien nach Funktionsdefinitionen. // // Liefert für jede gefundene Funktion: // - Name // - Parameter (vollständige Signatur) // - Dateipfad // - Zeilennummer // // Wird von FunctionListPanel (Anzeige) und DeadCodeAnalyzer (Stufe 1) // gemeinsam genutzt. // --------------------------------------------------------------------------- class FunctionScanner : public QObject { Q_OBJECT public: struct FunctionInfo { QString name; // Funktionsname QString parameters; // Parameter wie definiert, z.B. "$id, $name = null" QString signature; // name(parameters) — fertig formatiert QString filePath; // Absoluter Pfad zur Datei int line = 0; // Zeilennummer der Definition QString className; // Klassen- oder Namespace-Kontext, leer = global }; explicit FunctionScanner(QObject *parent = nullptr); // Synchroner Scan — für direkten Aufruf aus Threads QList scanDirectory(const QString &rootPath, const QStringList &extensions = {"*.php"}) const; // Scannt eine einzelne Datei QList scanFile(const QString &filePath) const; private: static QString extractParameters(const QString &line, int parenPos); static QString detectClassContext(const QStringList &lines, int functionLineIndex); };