Maguyva의 PHP 지원: 무작정 수정 없이 오래된 웹 앱 다루기
PHP 코드베이스가 여전히 매출을 내고 있지만, 누구도 에이전트가 제멋대로 손대는 것을 원하지 않을 때 유용합니다.
확장자
.php, .php3, .php4, .php5, +2개 더보기
Perl 코드는 밀도가 높고 유연하며, 몇 년 전에 떠난 사람이 쓴 경우가 많습니다. 시길은 이름의 의미를 바꾸고, 패키지는 클래스를 겸하며, 같은 모듈이 여러 디렉터리의 스크립트에서 로드됩니다. 텍스트 검색은 문자열은 찾지만, 스크립트가 실제로 어떤 서브루틴을 호출하는지는 에이전트에게 알려 주지 않습니다.
Maguyva는 패키지, 서브루틴, 임포트, 생성자를 구조로 에이전트에게 건네므로, 코드를 건드리기 전에 변경 범위를 정할 수 있습니다.
Maguyva는 .pl, .pm, .t, .pod, .perl을 지원합니다. 서브루틴은 함수로, package 선언은 클래스로 추출되며, 정의 이름에서 시길($, @, %, &, *)이 제거되므로 변수와 서브루틴을 이름 그대로 검색할 수 있습니다.
임포트는 use, require, package 문에서 만들어집니다. Class->new 형태의 메서드 호출은 인스턴스화로 계산되고, bless와 tie는 의도적으로 호출 그래프에 남겨 둡니다. 그래프에는 상속, 오버라이드, 타입 참조, 읽기와 쓰기, 예외 발생도 기록됩니다.
약 189개의 내장 함수(print, open, die, warn 등)는 호출 관계에서 걸러지므로 저장소 코드가 더 잘 드러납니다.
Billing::Invoice를 사용하는 스크립트는 무엇이고, 그 안의 어떤 서브루틴을 호출하나요?” (dependency_search incoming)Report::Monthly는 어디서 생성되고, ->new 다음에는 무슨 일이 일어나나요?” (find_symbol, 그다음 get_task_context)Auth::Session을 검증하는 테스트 파일을 모두 찾아 줘.” (text_pattern_search, 그다음 find_symbol)sub 선언이므로, 구조적 검색에서 메서드로 분류되는 것은 새로운 전용 method 문법뿐입니다. 오래된 객체 지향 Perl에는 functions 프리셋을 사용하세요.open이나 print 호출이 필요하다면 text_pattern_search를 사용하세요.빠른 시작으로 저장소를 연결한 다음, 호환성 페이지에서 지원 매트릭스를 확인하세요. 자산을 다른 스크립트 언어로 옮기는 중이라면 Python 가이드와 비교해 보세요.
가장 적합한 경우
에이전트 워크플로
엔진 세부 정보
유용한 MCP 진입점
패키지나 서브루틴 이름으로 쓰세요. 시길은 제거되므로 이름 그대로 검색합니다.
공유 모듈에 incoming 탐색을 써서 어떤 스크립트와 패키지가 의존하는지 확인하세요.
호출 그래프에서 빠지는 필터링된 내장 함수, 설정 키, SQL 문자열에 쓰세요.
관련 가이드
PHP 코드베이스가 여전히 매출을 내고 있지만, 누구도 에이전트가 제멋대로 손대는 것을 원하지 않을 때 유용합니다.
확장자
.php, .php3, .php4, .php5, +2개 더보기
Python 코드베이스가 서비스, 스크립트, 타입 스텁, 운영용 연결 코드 전반에 뻗어 있을 때 유용합니다.
확장자
.py, .pyi, .pyw