Maguyva 對 PHP 的支援:長壽命 Web 應用程式,不必再盲目編輯
當一套 PHP 程式碼庫依然在創造營收、卻沒有人希望代理在裡頭自由發揮時,這特別相關。
副檔名
.php, .php3, .php4, .php5, 還有 2 個
Perl 程式碼緊湊、靈活,而且往往出自多年前就已離開的人之手。sigil 會改變名稱的意義,套件同時兼任類別,同一個模組會被許多目錄下的腳本載入。文字搜尋找得到字串,卻無法告訴代理一個腳本實際呼叫的是哪個副程式。
Maguyva 會把套件、副程式、匯入與建構子作為結構交給代理,讓它在動到程式碼之前先界定修改的範圍。
Maguyva 涵蓋 .pl、.pm、.t、.pod 與 .perl。副程式會被擷取為函式,package 宣告會被擷取為類別,定義名稱中的 sigil($、@、%、&、*)會被移除,因此變數與副程式都能以原始名稱搜尋。
匯入來自 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 進入點
以套件或副程式名稱查找;sigil 會被移除,所以請用原始名稱搜尋。
對共用模組使用 incoming 走訪,查看哪些腳本與套件依賴它。
用於查找呼叫圖之外的已過濾內建函式、設定鍵與 SQL 字串。
相關指南
當一套 PHP 程式碼庫依然在創造營收、卻沒有人希望代理在裡頭自由發揮時,這特別相關。
副檔名
.php, .php3, .php4, .php5, 還有 2 個
當 Python 程式碼庫蔓延橫跨服務、腳本、型別存根與各種維運黏著程式碼時,這特別有用。
副檔名
.py, .pyi, .pyw