Sokongan PHP dalam Maguyva: Aplikasi Web Lama Tanpa Suntingan Membuta Tuli
Relevan apabila pangkalan kod PHP masih menjana hasil tetapi tiada siapa mahu ejen bertindak sesuka hati di dalamnya.
Sambungan fail
.php, .php3, .php4, .php5, +2 lagi
Maguyva menyokong Ruby dengan AST, simbol dan graf, supaya ejen AI boleh menjejak kelas, modul, kaedah singleton dan pembina dalam pangkalan kod Rails dan Ruby.
Ruby sangat bergantung pada konvensyen dan pengaturcaraan meta. Kaedah dijana oleh attr_accessor, kelas dibuka semula dalam fail lain, dan ruang nama menyarangkan modul hingga beberapa tahap. Permukaan yang mudah dibaca menyembunyikan kaedah mana yang sebenarnya dicapai oleh sesuatu panggilan, dan carian teks yang kasar mengembalikan setiap call dan setiap perform dalam aplikasi.
Maguyva memberikan kelas, modul, kaedah dan pemanggilnya kepada ejen sebagai struktur, supaya ia dapat mengikuti perubahan di seluruh aplikasi dan bukannya meneka.
Maguyva meliputi fail .rb, .rbw, .rake dan .gemspec, serta Gemfile dan Rakefile. Kaedah instance dan kaedah singleton (def self.call) diekstrak, dengan kaedah singleton ditanda sebagai static. Pengisytiharan attr_reader, attr_writer dan attr_accessor dikira sebagai kaedah capaian, dan simbol dilayakkan dengan ruang nama modul dan kelasnya.
ClassName.new dan Namespace::ClassName.new dikira sebagai penginstansian, dan penentuan jenis penerima mengikut umpukan setempat dan @instance_variables, jadi panggilan pada objek yang diumpukkan boleh diselesaikan kepada kelasnya. Graf juga merekodkan pewarisan, penyertaan modul, penggantian, tepi raise dan rescue, serta bacaan dan tulisan.
Panggilan pengaturcaraan meta (define_method, send, method_missing, class_eval dan seumpamanya), pembantu jenis T:: daripada Sorbet, dan panggilan Enumerable biasa (each, collect, reject dan seumpamanya) ditapis daripada hubungan, supaya kod aplikasi lebih menonjol.
Billing::ChargeCustomer.call, dan daripada job serta pengawal mana?” (find_symbol, kemudian dependency_search arah masuk)ApplicationRecord dan menyertakan Auditable?” (dependency_search)get_task_context)require dan load ialah panggilan kaedah biasa, jadi pratetap imports dalam structural_search tidak memilih apa-apa. Gunakan text_pattern_search untuk menyenaraikannya.define_method atau dikendalikan oleh method_missing tidak diekstrak sebagai simbol, dan panggilan tersebut ditapis sebagai hingar pengaturcaraan meta.Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Untuk repositori bahasa dinamik yang lain, bandingkan dengan panduan Python.
Paling sesuai
Aliran kerja ejen
Butiran enjin
Titik masuk MCP yang berguna
Gunakan untuk kelas, modul atau kaedah beruang nama, seperti `Billing::ChargeCustomer.call`.
Sebelum perubahan, gunakan penjelajahan arah masuk pada model atau service object untuk melihat pemanggil dan subkelas.
Gunakan untuk laluan `require`, rentetan laluan web dan kaedah yang ditakrifkan secara dinamik yang tidak dapat dilihat oleh graf.
Panduan berkaitan
Relevan apabila pangkalan kod PHP masih menjana hasil tetapi tiada siapa mahu ejen bertindak sesuka hati di dalamnya.
Sambungan fail
.php, .php3, .php4, .php5, +2 lagi
Berguna apabila pangkalan kod Python berselerak merentasi service, skrip, type stub, dan kod penghubung operasi.
Sambungan fail
.py, .pyi, .pyw