dependents.py

Code Hygiene Score: 100

Keine Issues gefunden.

Dependencies 1

Funktionen 1

Code

"""code_dependents - Wer nutzt diese Klasse? (incoming) - Wichtigste Funktion!"""

from db import execute_query


def register_dependents_tool(mcp):
    """Registriert code_dependents Tool."""

    @mcp.tool()
    def code_dependents(
        fqcn: str,
        dependency_type: str = None,
    ) -> dict:
        """
        Zeigt wer diese Klasse nutzt (incoming - Impact-Analyse vor Aenderungen).

        Args:
            fqcn: Vollstaendiger Klassenname (z.B. Controller\\HomeController)
            dependency_type: Filter nach Typ: extends, implements, constructor, use, trait (optional)

        Returns:
            Dict mit dependents: [{file_id, file_name, namespace, dependency_type}]
        """
        # SQL exakt aus PHP CodeAnalysisRepository::findDependents() (Zeile 290-311)
        sql = """
            SELECT ca.id as file_id, ca.file_name, ca.file_path, ca.namespace, cd.dependency_type
            FROM code_dependencies cd
            JOIN code_analysis ca ON cd.analysis_id = ca.id
            WHERE cd.target_fqcn = %s
        """
        params = [fqcn]

        if dependency_type:
            sql += " AND cd.dependency_type = %s"
            params.append(dependency_type)

        sql += " ORDER BY ca.file_name"

        dependents = execute_query(sql, tuple(params))

        return {
            "fqcn": fqcn,
            "dependents": dependents,
            "count": len(dependents),
        }
← Übersicht