Suporte a PHP no Maguyva: Aplicações Web de Longa Vida sem Edições às Cegas
Relevante quando um codebase PHP ainda gera receita, mas ninguém quer um agente agindo por conta própria nele.
Extensões
.php, .php3, .php4, .php5, +2 mais
O Maguyva oferece suporte a Ruby com AST, símbolos e grafo, para que agentes de IA sigam classes, módulos, métodos singleton e construtores em bases Rails e Ruby.
Ruby se apoia em convenções e metaprogramação. Métodos são gerados por attr_accessor, classes são reabertas em outros arquivos, e namespaces aninham vários módulos. A superfície legível esconde qual método uma chamada realmente alcança, e uma busca textual bruta devolve cada call e cada perform do app.
O Maguyva entrega ao agente classes, módulos, métodos e seus chamadores como estrutura, para que ele siga uma mudança pelo app em vez de adivinhar.
O Maguyva cobre arquivos .rb, .rbw, .rake e .gemspec, além de Gemfile e Rakefile. Métodos de instância e métodos singleton (def self.call) são extraídos, e os métodos singleton são marcados como estáticos. Declarações attr_reader, attr_writer e attr_accessor contam como métodos de acesso, e os símbolos são qualificados pelo namespace de módulo e classe.
ClassName.new e Namespace::ClassName.new contam como instanciação, e a tipagem de receivers segue atribuições locais e @instance_variables, de modo que uma chamada em um objeto atribuído pode ser resolvida para a sua classe. O grafo também registra herança, inclusão de módulos, sobrescritas, arestas de raise e rescue, e leituras e escritas.
Chamadas de metaprogramação (define_method, send, method_missing, class_eval e semelhantes), os helpers de tipo T:: do Sorbet e chamadas enumeráveis comuns (each, collect, reject e semelhantes) são filtrados das relações para que o código da aplicação se destaque.
Billing::ChargeCustomer.call e a partir de quais jobs e controllers?” (find_symbol, depois dependency_search incoming)ApplicationRecord e incluem Auditable?” (dependency_search)get_task_context)require e load são chamadas de método comuns, então o preset imports de structural_search não seleciona nada. Use text_pattern_search para listá-las.define_method ou tratados por method_missing não são extraídos como símbolos, e essas chamadas são filtradas como ruído de metaprogramação.Conecte um repositório pelo início rápido e depois confira a matriz de suporte na página de compatibilidade. Para outros repositórios em linguagens dinâmicas, compare com o guia de Python.
Uso ideal
Fluxos de trabalho de agente
Detalhes do motor
Pontos de entrada MCP úteis
Use com uma classe, módulo ou método com namespace, como `Billing::ChargeCustomer.call`.
Use a travessia incoming em um model ou service object para ver chamadores e subclasses antes de uma mudança.
Use para caminhos de `require`, strings de rotas e métodos definidos dinamicamente que o grafo não enxerga.
Guias relacionados
Relevante quando um codebase PHP ainda gera receita, mas ninguém quer um agente agindo por conta própria nele.
Extensões
.php, .php3, .php4, .php5, +2 mais
Útil quando codebases Python se espalham por serviços, scripts, type stubs e código de integração operacional.
Extensões
.py, .pyi, .pyw