Hỗ trợ PHP trong Maguyva: Ứng dụng web lâu đời không cần chỉnh sửa mù quáng
Liên quan khi một codebase PHP vẫn đang tạo ra doanh thu nhưng không ai muốn một agent tự do làm bừa trong đó.
Phần mở rộng
.php, .php3, .php4, .php5, +2 nữa
Maguyva hỗ trợ Ruby với AST, ký hiệu và đồ thị, để agent AI có thể lần theo lớp, module, phương thức singleton và constructor trong codebase Rails và Ruby.
Ruby dựa nhiều vào quy ước và metaprogramming. Phương thức được sinh ra bởi attr_accessor, lớp được mở lại ở tệp khác, và namespace lồng module qua nhiều cấp. Bề mặt dễ đọc che đi việc một lời gọi thực sự dẫn tới phương thức nào, và một tìm kiếm văn bản thô sẽ trả về mọi call và mọi perform trong ứng dụng.
Maguyva đưa cho agent lớp, module, phương thức và nơi gọi dưới dạng cấu trúc, để nó lần theo thay đổi xuyên suốt ứng dụng thay vì đoán.
Maguyva bao phủ các tệp .rb, .rbw, .rake và .gemspec, cùng với Gemfile và Rakefile. Phương thức instance và phương thức singleton (def self.call) được trích xuất, trong đó phương thức singleton được đánh dấu là static. Khai báo attr_reader, attr_writer và attr_accessor được tính là phương thức truy cập, và ký hiệu được định danh theo namespace module và lớp.
ClassName.new và Namespace::ClassName.new được tính là khởi tạo, và việc xác định kiểu receiver theo dõi phép gán cục bộ và @instance_variables, nên lời gọi trên một đối tượng đã gán có thể được phân giải về lớp của nó. Đồ thị cũng ghi lại kế thừa, include module, ghi đè, các cạnh raise và rescue, cùng đọc và ghi.
Lời gọi metaprogramming (define_method, send, method_missing, class_eval và tương tự), helper kiểu T:: của Sorbet và các lời gọi Enumerable phổ biến (each, collect, reject và tương tự) bị lọc khỏi quan hệ, để mã ứng dụng nổi bật lên.
Billing::ChargeCustomer.call, và từ những job và controller nào?” (find_symbol, sau đó dependency_search theo chiều vào)ApplicationRecord và include Auditable?” (dependency_search)get_task_context)require và load là lời gọi phương thức thông thường, nên preset imports trong structural_search không chọn gì. Dùng text_pattern_search để liệt kê chúng.define_method hoặc do method_missing xử lý không được trích xuất thành ký hiệu, và các lời gọi đó bị lọc như nhiễu metaprogramming.Kết nối một kho mã bằng hướng dẫn bắt đầu nhanh, sau đó xem ma trận hỗ trợ trên trang tương thích. Với các kho mã ngôn ngữ động khác, hãy so sánh với hướng dẫn Python.
Phù hợp nhất
Workflow agent
Chi tiết engine
Điểm khởi đầu MCP hữu ích
Dùng cho một lớp, module hoặc phương thức có namespace, như `Billing::ChargeCustomer.call`.
Trước khi thay đổi, dùng duyệt theo chiều vào trên một model hoặc service object để thấy nơi gọi và lớp con.
Dùng cho đường dẫn `require`, chuỗi route và các phương thức được định nghĩa động mà đồ thị không nhìn thấy.
Hướng dẫn liên quan
Liên quan khi một codebase PHP vẫn đang tạo ra doanh thu nhưng không ai muốn một agent tự do làm bừa trong đó.
Phần mở rộng
.php, .php3, .php4, .php5, +2 nữa
Hữu ích khi codebase Python trải rộng qua các service, script, type stub, và mã kết nối vận hành.
Phần mở rộng
.py, .pyi, .pyw