diff --git a/graphify/extractors/resolution.py b/graphify/extractors/resolution.py index 01a946a..aa57e35 100644 --- a/graphify/extractors/resolution.py +++ b/graphify/extractors/resolution.py @@ -2871,11 +2871,13 @@ def _resolve_php_type_references( continue tgt = edge.get("target") label = stub_label.get(tgt) + uses = uses_by_file.get(ref_file, {}) + if not label and relation == "imports": + label = next((alias for alias in uses if _make_id(alias) == tgt), "") if not label: continue bare = label.strip().lower() ns = ns_by_file[ref_file] - uses = uses_by_file.get(ref_file, {}) raw = None if relation in _PHP_SUPERTYPE_RELATIONS: diff --git a/tests/test_php_type_resolution.py b/tests/test_php_type_resolution.py index 0dff626..f90b72f 100644 --- a/tests/test_php_type_resolution.py +++ b/tests/test_php_type_resolution.py @@ -156,3 +156,35 @@ def test_php_plain_no_namespace_inheritance_preserved(tmp_path: Path): "no-namespace inheritance must still resolve to the real Base def" ) assert tgt.get("label") == "Base" + + +def test_php_import_resolves_when_target_name_prefixes_sibling_classes(tmp_path: Path): + pivot = _write( + tmp_path / "src/Pivot.php", + "