ข้ามไปที่เนื้อหา
cd /languages
  • เว็บเก่า แรงกดดันใหม่
  • การเขียนโปรแกรม
  • รองรับ AST และสัญลักษณ์

การรองรับ PHP ใน Maguyva: เว็บแอปที่อยู่มายาวนานโดยไม่ต้องแก้ไขแบบไม่เข้าใจโค้ด

Maguyva รองรับ PHP ด้วยการแยกวิเคราะห์ AST และการดึงสัญลักษณ์ ช่วยให้เอเจนต์ AI สำรวจแอป Laravel, เฟรมเวิร์กที่พัฒนาขึ้นเอง, โค้ดยุค WordPress และรีโพซิทอรี PHP ที่อยู่มานานอื่นๆ ด้วยโครงสร้างที่มากกว่า grep

เหตุใด PHP จึงต้องการการค้นหาที่รับรู้โครงสร้าง

PHP เป็นตัวอย่างที่ชัดเจนที่สุดตัวหนึ่งว่าทำไมการรองรับภาษาอย่างกว้างขวางต้องเป็นเรื่องจริง ไม่ใช่แค่ความปรารถนา ระบบสำคัญจำนวนมากยังคงเป็นระบบ PHP: แอป Laravel, โมโนลิธเก่า, เครื่องมือแอดมินภายใน และเว็บแอปที่ปรับแต่งหนักจนรอดจากทุกแผนเขียนใหม่

ในรีโพเหล่านั้น ปัญหาไม่ได้อยู่ที่ไวยากรณ์ แต่อยู่ที่การกู้คืนโครงสร้างอย่างปลอดภัยจากโค้ดเบสที่มีเวลาหลายปีในการสะสมตัวช่วย, ข้อตกลงของเฟรมเวิร์ก และทางลัดเฉพาะที่

สิ่งที่ Maguyva ดึงออกมาจริงใน PHP

Maguyva ตัดสัญลักษณ์ $ ออกจากคำนิยาม ทำให้การเรียกที่มีคำนำหน้าสมาชิกเป็นมาตรฐานเดียวกัน และกรองสัญญาณรบกวนจากฟังก์ชันในตัวของ PHP ออกจากกราฟความสัมพันธ์จำนวนมาก นี่คือการทำความสะอาดแบบที่โค้ด PHP เก่าต้องการก่อนที่มุมมองการค้นหาและ dependency จะมีประโยชน์

นอกจากนี้ยังรองรับรูปแบบไฟล์ที่ทีม PHP พบเจอจริง ตั้งแต่ .php และ .phtml ไปจนถึงนามสกุลไฟล์ที่ระบุเวอร์ชันเก่าที่ยังปรากฏอยู่ในระบบที่อยู่มานาน

เวิร์กโฟลว์ MCP ที่มีประโยชน์สำหรับแอป PHP ที่อยู่มายาวนาน

รูปแบบที่ให้ผลลัพธ์มักเป็น:

  • find_symbol สำหรับ controller, service, model หรือคลาสตัวช่วยที่มีชื่อคงที่
  • text_pattern_search สำหรับชื่อเส้นทาง, การเรียกตัวช่วยหรือข้อตกลงเฟรมเวิร์กเก่า เมื่อข้อความตรงตัวยังเป็นเส้นทางที่เร็วที่สุด
  • get_task_context เมื่อเส้นทางโค้ดยุ่งเหยิงและต้องการสรุปที่เชื่อมโยงข้อมูลเข้าด้วยกันก่อนแก้ไข

เมื่อใดที่หน้านี้มีประโยชน์

หน้านี้เหมาะกับทีมที่ยังต้องเผชิญความจริงว่า “เรายังรัน PHP ที่สำคัญอยู่” หากฟรอนต์เอนด์อยู่ใน JavaScript สมัยใหม่ ให้อ่าน JavaScript ต่อ หากรีโพมี service หรือเลเยอร์การทำงานอัตโนมัติใหม่กว่ารอบๆ Python คือหน้าคู่หูที่เกี่ยวข้องกว่า

เหมาะที่สุดสำหรับ

  • > รีโพซิทอรีของ Laravel, PHP กำหนดเอง หรือโมโนลิธผสมที่ยังสำคัญต่อการปฏิบัติงาน
  • > ทีมที่ดูแลเว็บแอปเก่าที่ตอนนี้อยู่ข้างๆ ฟรอนต์เอนด์ JavaScript และโค้ดโครงสร้างพื้นฐาน
  • > งานรีแฟกเตอร์ด้วยความช่วยเหลือของ AI ที่ให้ความสำคัญกับการเข้าใจโฟลว์ที่มีอยู่ก่อนเปลี่ยนแปลง

เวิร์กโฟลว์ของเอเจนต์

  • > ตามรอยเส้นทาง, controller, service หรือตัวช่วยที่ใช้ร่วมกันก่อนแก้ไข
  • > หารูปแบบการอิมพลีเมนต์ที่ซ้ำกันในโค้ดเบส PHP ที่เติบโตเต็มที่ แทนที่จะสร้างรูปแบบใหม่ขึ้นมาเอง
  • > กู้คืนโครงสร้างในโค้ดเก่าที่ผ่านหลายยุคของเฟรมเวิร์กหรือโฮสติ้งมาแล้ว

รายละเอียดเอนจิน

  • > PHP ตัดสัญลักษณ์ `$` ออกจากนิยาม และปรับการเรียกที่มีคำนำหน้าสมาชิกให้เป็นมาตรฐาน ทำให้โค้ดเก่าที่มีฟังก์ชันช่วยเหลือหนาแน่นค้นหาได้สม่ำเสมอมากขึ้น
  • > การรองรับครอบคลุมรูปแบบไฟล์ PHP ทั่วไป รวมถึง `.php`, `.php3`, `.php4`, `.php5`, `.phtml`, และ `.phps`
  • > ตัวกรองฟังก์ชันในตัวขนาดใหญ่ตัดส่วนรันไทม์มาตรฐานของ PHP ออก เพื่อให้กราฟยังคงเน้นไปที่โค้ดของแอปพลิเคชัน

จุดเริ่มต้น MCP ที่มีประโยชน์

  • find_symbol

    ใช้กับ controller เซอร์วิส โมเดล หรือคลาสช่วยเหลือ เมื่อรีโพยังมีชื่อสัญลักษณ์ที่จำได้

  • text_pattern_search

    ใช้กับชื่อเส้นทาง การเรียกฟังก์ชันช่วยเหลือ หรือธรรมเนียมเฟรมเวิร์กเก่า เมื่อโครงสร้างอย่างเดียวไม่พอ

  • get_task_context

    มีประโยชน์เมื่อคุณต้องการสรุปที่ประกอบรวมกันของโฟลว์ PHP เก่า ก่อนเปลี่ยนแปลงมัน

คู่มือที่เกี่ยวข้อง

ส่วนอื่นของรีโพที่เกี่ยวข้อง

ดูคู่มือทั้งหมด
รันไทม์ผสมกัน การเขียนโปรแกรม

การรองรับ JavaScript ใน Maguyva: การค้นหาด้วย AI สำหรับรีโพที่ผสมรันไทม์

มีประโยชน์เมื่อรีโพผสม CommonJS, ESM, สคริปต์งาน, test และโค้ดแอปเก่าเข้าด้วยกัน

รองรับ AST และสัญลักษณ์ การแยกวิเคราะห์ AST การสกัดสัญลักษณ์ ความสัมพันธ์ในกราฟ

นามสกุลไฟล์

.cjs, .js, .mjs, .spec.js, +อีก 2

เปิดคู่มือ
ระบบไดนามิก การเขียนโปรแกรม

การรองรับ Python ใน Maguyva: ค้นหาโค้ดและรีแฟกเตอร์ด้วย AI

มีประโยชน์เมื่อโค้ดเบส Python กระจายไปทั่ว service, สคริปต์, stub ชนิดข้อมูล และโค้ดที่เชื่อมโยงส่วนต่างๆ ในการปฏิบัติงาน

รองรับ AST และสัญลักษณ์ การแยกวิเคราะห์ AST การสกัดสัญลักษณ์ ความสัมพันธ์ในกราฟ

นามสกุลไฟล์

.py, .pyi, .pyw

เปิดคู่มือ