Dukungan PHP di Maguyva: Aplikasi Web Berumur Panjang Tanpa Edit Membabi Buta
Relevan saat basis kode PHP masih menghasilkan revenue, tetapi tidak ada yang ingin agen berimprovisasi seenaknya di dalamnya.
Ekstensi
.php, .php3, .php4, .php5, +2 lagi
Maguyva mendukung Ruby dengan AST, simbol, dan graf, sehingga agen AI dapat menelusuri kelas, modul, metode singleton, dan konstruktor dalam basis kode Rails dan Ruby.
Ruby sangat bergantung pada konvensi dan metaprogramming. Metode dihasilkan oleh attr_accessor, kelas dibuka ulang di berkas lain, dan namespace menyarangkan modul hingga beberapa tingkat. Permukaan yang mudah dibaca menyembunyikan metode mana yang sebenarnya dicapai sebuah panggilan, dan pencarian teks kasar mengembalikan setiap call dan setiap perform di aplikasi.
Maguyva memberi agen kelas, modul, metode, dan pemanggilnya sebagai struktur, sehingga ia dapat mengikuti sebuah perubahan di seluruh aplikasi alih-alih menebak.
Maguyva mencakup berkas .rb, .rbw, .rake, dan .gemspec, serta Gemfile dan Rakefile. Metode instance dan metode singleton (def self.call) diekstrak, dengan metode singleton ditandai sebagai static. Deklarasi attr_reader, attr_writer, dan attr_accessor dihitung sebagai metode akses, dan simbol dikualifikasi dengan namespace modul dan kelasnya.
ClassName.new dan Namespace::ClassName.new dihitung sebagai instansiasi, dan penentuan tipe receiver mengikuti penugasan lokal dan @instance_variables, sehingga panggilan pada objek yang ditugaskan dapat diselesaikan ke kelasnya. Graf juga mencatat pewarisan, include modul, override, edge raise dan rescue, serta pembacaan dan penulisan.
Panggilan metaprogramming (define_method, send, method_missing, class_eval, dan sejenisnya), helper tipe T:: dari Sorbet, serta panggilan Enumerable umum (each, collect, reject, dan sejenisnya) difilter dari relasi, agar kode aplikasi menonjol.
Billing::ChargeCustomer.call, dan dari job serta controller mana?” (find_symbol, lalu dependency_search arah masuk)ApplicationRecord dan meng-include Auditable?” (dependency_search)get_task_context)require dan load adalah panggilan metode biasa, sehingga preset imports di structural_search tidak memilih apa pun. Gunakan text_pattern_search untuk mendaftarnya.define_method atau ditangani oleh method_missing tidak diekstrak sebagai simbol, dan panggilan tersebut difilter sebagai derau metaprogramming.Hubungkan repositori dengan panduan memulai cepat, lalu periksa matriks dukungan di halaman kompatibilitas. Untuk repositori bahasa dinamis lainnya, bandingkan dengan panduan Python.
Paling cocok untuk
Workflow agent
Detail engine
Titik masuk MCP yang berguna
Gunakan untuk kelas, modul, atau metode ber-namespace, seperti `Billing::ChargeCustomer.call`.
Sebelum perubahan, gunakan penelusuran arah masuk pada model atau service object untuk melihat pemanggil dan subkelas.
Gunakan untuk path `require`, string rute, dan metode yang didefinisikan secara dinamis yang tidak terlihat oleh graf.
Panduan terkait
Relevan saat basis kode PHP masih menghasilkan revenue, tetapi tidak ada yang ingin agen berimprovisasi seenaknya di dalamnya.
Ekstensi
.php, .php3, .php4, .php5, +2 lagi
Berguna saat basis kode Python merambat ke berbagai service, script, type stub, dan kode penghubung operasional.
Ekstensi
.py, .pyi, .pyw