PHP-understøttelse i Maguyva: Langlivede webapps uden blinde rettelser
Relevant når en PHP-kodebase stadig genererer omsætning, men ingen ønsker, at en agent skal improvisere ændringer i den.
Filendelser
.php, .php3, .php4, .php5, +2 flere
Maguyva understøtter Ruby med AST, symboler og graf, så AI-agenter kan følge klasser, moduler, singleton-metoder og konstruktørkald i Rails- og Ruby-kodebaser.
Ruby læner sig tungt op ad konventioner og metaprogrammering. Metoder genereres af attr_accessor, klasser genåbnes i andre filer, og navnerum indlejrer flere moduler. Den læsbare overflade skjuler, hvilken metode et kald faktisk rammer, og en grov tekstsøgning returnerer hvert call og perform i appen.
Maguyva giver agenten klasser, moduler, metoder og deres kaldere som struktur, så den kan følge en ændring gennem appen i stedet for at gætte.
Maguyva dækker .rb-, .rbw-, .rake- og .gemspec-filer samt Gemfile og Rakefile. Instansmetoder og singleton-metoder (def self.call) udtrækkes, og singleton-metoder markeres som statiske. Erklæringer med attr_reader, attr_writer og attr_accessor tæller som accessor-metoder, og symboler kvalificeres med deres modul- og klassenavnerum.
ClassName.new og Namespace::ClassName.new tæller som instansiering, og modtagertypningen følger lokale tildelinger og @instance_variables, så et kald på et tildelt objekt kan opløses til dets klasse. Grafen registrerer også nedarvning, modulinklusion, overskrivninger, raise- og rescue-kanter samt læsninger og skrivninger.
Metaprogrammeringskald (define_method, send, method_missing, class_eval og lignende), Sorbets T::-typehjælpere og almindelige enumerable-kald (each, collect, reject og lignende) filtreres fra relationerne, så applikationskoden træder frem.
Billing::ChargeCustomer.call, og fra hvilke jobs og controllers?” (find_symbol, derefter dependency_search incoming)ApplicationRecord og inkluderer Auditable?” (dependency_search)get_task_context)require og load er almindelige metodekald i Ruby, så forudindstillingen imports i structural_search vælger intet. Brug text_pattern_search til at liste dem.define_method eller håndteres af method_missing, udtrækkes ikke som symboler, og de kald filtreres som metaprogrammeringsstøj.Tilslut et repository med hurtigstarten, og se derefter understøttelsesmatricen på kompatibilitetssiden. For andre repositories i dynamiske sprog, sammenlign med guiden til Python.
Bedst egnet til
Agent-arbejdsgange
Motordetaljer
Nyttige MCP-indgange
Brug det til en klasse, et modul eller en metode med navnerum, som `Billing::ChargeCustomer.call`.
Brug incoming-gennemløb på en model eller et serviceobjekt før en ændring for at se kaldere og subklasser.
Brug det til `require`-stier, rutestrenge og dynamisk definerede metoder, som grafen ikke ser.
Relaterede guides
Relevant når en PHP-kodebase stadig genererer omsætning, men ingen ønsker, at en agent skal improvisere ændringer i den.
Filendelser
.php, .php3, .php4, .php5, +2 flere
Nyttigt når Python-kodebaser breder sig ud over services, scripts, type stubs og sammenbindende driftskode.
Filendelser
.py, .pyi, .pyw