PHP-stöd i Maguyva: långlivade webbappar utan blinda redigeringar
Relevant när en PHP-kodbas fortfarande genererar intäkter men ingen vill släppa en agent lös i den på egen hand.
Filändelser
.php, .php3, .php4, .php5, +2 till
Maguyva stöder Ruby med AST, symboler och graf, så att AI-agenter kan följa klasser, moduler, singletonmetoder och konstruktoranrop i Rails- och Ruby-kodbaser.
Ruby lutar sig tungt mot konventioner och metaprogrammering. Metoder genereras av attr_accessor, klasser öppnas igen i andra filer och namnrymder nästlar flera moduler djupt. Den läsbara ytan döljer vilken metod ett anrop faktiskt når, och en trubbig textsökning returnerar varje call och perform i appen.
Maguyva ger agenten klasser, moduler, metoder och deras anropare som struktur, så att den kan följa en ändring genom appen i stället för att gissa.
Maguyva täcker .rb-, .rbw-, .rake- och .gemspec-filer samt Gemfile och Rakefile. Instansmetoder och singletonmetoder (def self.call) extraheras, och singletonmetoder markeras som statiska. Deklarationer med attr_reader, attr_writer och attr_accessor räknas som accessormetoder, och symboler kvalificeras med sin modul- och klassnamnrymd.
ClassName.new och Namespace::ClassName.new räknas som instansiering, och mottagartypningen följer lokala tilldelningar och @instance_variables, så ett anrop på ett tilldelat objekt kan lösas till sin klass. Grafen registrerar också arv, modulinkludering, överskrivningar, raise- och rescue-kanter samt läsningar och skrivningar.
Metaprogrammeringsanrop (define_method, send, method_missing, class_eval och liknande), Sorbets T::-typhjälpare och vanliga enumerable-anrop (each, collect, reject och liknande) filtreras bort ur relationerna så att applikationskoden syns.
Billing::ChargeCustomer.call, och från vilka jobb och controllers?” (find_symbol, sedan dependency_search incoming)ApplicationRecord och inkluderar Auditable?” (dependency_search)get_task_context)require och load är vanliga metodanrop i Ruby, så förinställningen imports i structural_search väljer ingenting. Använd text_pattern_search för att lista dem.define_method eller hanteras av method_missing extraheras inte som symboler, och de anropen filtreras som metaprogrammeringsbrus.Anslut ett repo med snabbstarten och kontrollera sedan stödmatrisen på kompatibilitetssidan. För andra repon i dynamiska språk, jämför med guiden för Python.
Bäst lämpad för
Agentarbetsflöden
Motordetaljer
Användbara MCP-ingångar
Använd det för en klass, modul eller metod med namnrymd, som `Billing::ChargeCustomer.call`.
Använd incoming-traversering på en modell eller ett serviceobjekt före en ändring för att se anropare och subklasser.
Använd det för `require`-sökvägar, routesträngar och dynamiskt definierade metoder som grafen inte ser.
Relaterade guider
Relevant när en PHP-kodbas fortfarande genererar intäkter men ingen vill släppa en agent lös i den på egen hand.
Filändelser
.php, .php3, .php4, .php5, +2 till
Användbart när Python-kodbaser sprider ut sig över tjänster, skript, typstubbar och kod som håller ihop driften.
Filändelser
.py, .pyi, .pyw