Supporto PHP in Maguyva: applicazioni web di lunga data senza modifiche alla cieca
Rilevante quando un codebase PHP genera ancora ricavi ma nessuno vuole che un agente ci lavori di testa sua.
Estensioni
.php, .php3, .php4, .php5, +2 altre
Maguyva supporta Ruby con AST, simboli e grafo, così gli agenti IA seguono classi, moduli, metodi singleton e costruttori nelle basi di codice Rails e Ruby.
Ruby si appoggia molto su convenzioni e metaprogrammazione. I metodi vengono generati da attr_accessor, le classi vengono riaperte in altri file e i namespace annidano moduli su più livelli. La superficie leggibile nasconde quale metodo raggiunge davvero una chiamata, e una ricerca testuale grezza restituisce ogni call e ogni perform dell’app.
Maguyva fornisce all’agente classi, moduli, metodi e i loro chiamanti come struttura, così può seguire una modifica attraverso l’app invece di tirare a indovinare.
Maguyva copre i file .rb, .rbw, .rake e .gemspec, oltre a Gemfile e Rakefile. Vengono estratti metodi di istanza e metodi singleton (def self.call), con i metodi singleton contrassegnati come statici. Le dichiarazioni attr_reader, attr_writer e attr_accessor contano come metodi di accesso, e i simboli sono qualificati dal namespace di modulo e classe.
ClassName.new e Namespace::ClassName.new contano come istanziazione, e la tipizzazione dei receiver segue le assegnazioni locali e le @instance_variables, così una chiamata su un oggetto assegnato può essere risolta nella sua classe. Il grafo registra anche ereditarietà, inclusione di moduli, override, archi raise e rescue, e letture e scritture.
Le chiamate di metaprogrammazione (define_method, send, method_missing, class_eval e simili), gli helper di tipo T:: di Sorbet e le chiamate enumerabili comuni (each, collect, reject e simili) vengono filtrati dalle relazioni, così il codice applicativo risalta.
Billing::ChargeCustomer.call e da quali job e controller?” (find_symbol, poi dependency_search incoming)ApplicationRecord e includono Auditable?” (dependency_search)get_task_context)require e load sono normali chiamate di metodo, quindi il preset imports di structural_search non seleziona nulla. Usa text_pattern_search per elencarle.define_method o gestiti da method_missing non vengono estratti come simboli, e quelle chiamate vengono filtrate come rumore di metaprogrammazione.Collega un repository con la guida rapida, poi consulta la matrice di supporto nella pagina di compatibilità. Per altri repository in linguaggi dinamici, confrontalo con la guida a Python.
Il più adatto per
Workflow degli agenti
Dettagli del motore
Punti di ingresso MCP utili
Usalo con una classe, un modulo o un metodo con namespace, come `Billing::ChargeCustomer.call`.
Usa la navigazione incoming su un model o un service object per vedere chiamanti e sottoclassi prima di una modifica.
Usalo per i percorsi di `require`, le stringhe delle route e i metodi definiti dinamicamente che il grafo non vede.
Guide correlate
Rilevante quando un codebase PHP genera ancora ricavi ma nessuno vuole che un agente ci lavori di testa sua.
Estensioni
.php, .php3, .php4, .php5, +2 altre
Utile quando i codebase Python si estendono su servizi, script, stub di tipo, e collante operativo.
Estensioni
.py, .pyi, .pyw