การรองรับ PHP ใน Maguyva: เว็บแอปที่อยู่มายาวนานโดยไม่ต้องแก้ไขแบบไม่เข้าใจโค้ด
เกี่ยวข้องเมื่อโค้ดเบส PHP ยังคงสร้างรายได้อยู่ แต่ไม่มีใครอยากปล่อยให้เอเจนต์แก้ไขไปตามใจ
นามสกุลไฟล์
.php, .php3, .php4, .php5, +อีก 2
Maguyva รองรับ Ruby ด้วย AST สัญลักษณ์ และกราฟ เพื่อให้เอเจนต์ AI ติดตามคลาส โมดูล singleton method และคอนสตรักเตอร์ในโค้ดเบส Rails และ Ruby
Ruby พึ่งพาแบบแผนและเมทาโปรแกรมมิงอย่างมาก เมธอดถูกสร้างโดย attr_accessor คลาสถูกเปิดใหม่ในไฟล์อื่น และ namespace ซ้อนโมดูลไว้หลายชั้น พื้นผิวที่อ่านง่ายซ่อนว่าการเรียกไปจบที่เมธอดใดจริง และการค้นหาข้อความแบบหยาบจะคืนทุก call และทุก perform ในแอป
Maguyva ให้คลาส โมดูล เมธอด และผู้เรียกกับเอเจนต์ในรูปของโครงสร้าง เพื่อให้ติดตามการเปลี่ยนแปลงไปทั่วแอปแทนการเดา
Maguyva ครอบคลุมไฟล์ .rb, .rbw, .rake และ .gemspec รวมถึง Gemfile และ Rakefile เมธอดของอินสแตนซ์และเมธอด singleton (def self.call) ถูกดึงออกมา โดยเมธอด singleton ถูกทำเครื่องหมายเป็น static การประกาศ attr_reader, attr_writer และ attr_accessor นับเป็นเมธอดแอคเซสเซอร์ และสัญลักษณ์ถูกระบุด้วย namespace ของโมดูลและคลาส
ClassName.new และ Namespace::ClassName.new นับเป็นการสร้างอินสแตนซ์ และการระบุชนิดของรีซีฟเวอร์ติดตามการกำหนดค่าตัวแปรท้องถิ่นและ @instance_variables การเรียกบนออบเจกต์ที่ถูกกำหนดค่าจึงรีโซลฟ์ไปยังคลาสของมันได้ กราฟยังบันทึกการสืบทอด การ include โมดูล การ override เส้นเชื่อม raise และ rescue และการอ่านและการเขียนด้วย
การเรียกแบบเมทาโปรแกรมมิง (define_method, send, method_missing, class_eval และอื่น ๆ ทำนองเดียวกัน) ตัวช่วยชนิดข้อมูล T:: ของ Sorbet และการเรียก Enumerable ที่พบบ่อย (each, collect, reject และอื่น ๆ ทำนองเดียวกัน) ถูกกรองออกจากความสัมพันธ์ เพื่อให้โค้ดแอปโดดเด่นขึ้นมา
Billing::ChargeCustomer.call และเรียกจาก job และ controller ใดบ้าง” (find_symbol แล้วตามด้วย dependency_search ทิศทางขาเข้า)ApplicationRecord และ include Auditable” (dependency_search)get_task_context)require และ load เป็นการเรียกเมธอดธรรมดา พรีเซ็ต imports ใน structural_search จึงไม่เลือกอะไรเลย ใช้ text_pattern_search เพื่อแสดงรายการเหล่านี้define_method หรือที่ method_missing จัดการ จะไม่ถูกดึงออกมาเป็นสัญลักษณ์ และการเรียกเหล่านั้นถูกกรองออกในฐานะสัญญาณรบกวนจากเมทาโปรแกรมมิงเชื่อมต่อรีโพซิทอรีด้วยคู่มือเริ่มต้นใช้งาน แล้วดูตารางการรองรับได้ที่หน้าความเข้ากันได้ สำหรับรีโพซิทอรีภาษาไดนามิกอื่น ให้เทียบกับคู่มือภาษา Python
เหมาะที่สุดสำหรับ
เวิร์กโฟลว์ของเอเจนต์
รายละเอียดเอนจิน
จุดเริ่มต้น MCP ที่มีประโยชน์
ใช้กับคลาส โมดูล หรือเมธอดที่อยู่ใน namespace เช่น `Billing::ChargeCustomer.call`
ก่อนการเปลี่ยนแปลง ใช้การท่องกราฟทิศทางขาเข้าบน model หรือ service ออบเจกต์ เพื่อดูผู้เรียกและคลาสลูก
ใช้กับพาธของ `require` สตริงเส้นทาง และเมธอดที่นิยามแบบไดนามิกซึ่งกราฟมองไม่เห็น
คู่มือที่เกี่ยวข้อง
เกี่ยวข้องเมื่อโค้ดเบส PHP ยังคงสร้างรายได้อยู่ แต่ไม่มีใครอยากปล่อยให้เอเจนต์แก้ไขไปตามใจ
นามสกุลไฟล์
.php, .php3, .php4, .php5, +อีก 2
มีประโยชน์เมื่อโค้ดเบส Python กระจายไปทั่ว service, สคริปต์, stub ชนิดข้อมูล และโค้ดที่เชื่อมโยงส่วนต่างๆ ในการปฏิบัติงาน
นามสกุลไฟล์
.py, .pyi, .pyw