Maguyva'da PHP Desteği: Körlemesine Düzenleme Olmadan Uzun Ömürlü Web Uygulamaları
Bir PHP kod tabanı hâlâ gelir üretiyorsa ama kimse bir ajanın onun içinde başıboş dolaşmasını istemiyorsa ilgilidir.
Uzantılar
.php, .php3, .php4, .php5, +2 daha
Maguyva, Ruby'yi AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları Rails ve Ruby kod tabanlarında sınıfları, modülleri, singleton yöntemleri ve yapıcıları izleyebilir.
Ruby büyük ölçüde kurallara ve meta programlamaya dayanır. Yöntemler attr_accessor ile üretilir, sınıflar başka dosyalarda yeniden açılır ve ad alanları modülleri birçok düzeyde iç içe yerleştirir. Okunabilir yüzey, bir çağrının gerçekte hangi yönteme vardığını gizler; kaba bir metin araması ise uygulamadaki her call ve her perform çağrısını döndürür.
Maguyva ajana sınıfları, modülleri, yöntemleri ve onları çağıranları yapı olarak verir; böylece ajan tahmin yürütmek yerine bir değişikliği uygulama boyunca izler.
Maguyva .rb, .rbw, .rake ve .gemspec dosyalarını, ayrıca Gemfile ve Rakefile dosyalarını kapsar. Örnek yöntemleri ve singleton yöntemler (def self.call) çıkarılır; singleton yöntemler static olarak işaretlenir. attr_reader, attr_writer ve attr_accessor bildirimleri erişim yöntemi sayılır ve semboller modül ve sınıf ad alanlarıyla nitelenir.
ClassName.new ve Namespace::ClassName.new örnekleme sayılır; alıcı türlemesi yerel atamaları ve @instance_variables değişkenlerini izler, böylece atanmış bir nesne üzerindeki çağrı kendi sınıfına çözülebilir. Graf ayrıca kalıtımı, modül dahil etmeyi, geçersiz kılmaları, raise ve rescue kenarlarını ve okuma ve yazmaları kaydeder.
Uygulama kodunun öne çıkması için meta programlama çağrıları (define_method, send, method_missing, class_eval ve benzerleri), Sorbet T:: tür yardımcıları ve yaygın Enumerable çağrıları (each, collect, reject ve benzerleri) ilişkilerden filtrelenir.
Billing::ChargeCustomer.call yöntemini kim, hangi job’lardan ve controller’lardan çağırıyor?” (find_symbol, ardından gelen yönde dependency_search)ApplicationRecord sınıfından kalıtım alıyor ve Auditable modülünü dahil ediyor?” (dependency_search)get_task_context)require ve load sıradan yöntem çağrılarıdır; bu nedenle structural_search aracındaki imports ön ayarı hiçbir şey seçmez. Bunları listelemek için text_pattern_search kullanın.define_method ile oluşturulan veya method_missing tarafından işlenen yöntemler sembol olarak çıkarılmaz ve bu çağrılar meta programlama gürültüsü olarak filtrelenir.Hızlı başlangıç ile bir repo bağlayın, ardından destek matrisi için uyumluluk sayfasına bakın. Diğer dinamik dil repoları için Python rehberi ile karşılaştırın.
En uygun kullanım
Ajan iş akışları
Motor ayrıntıları
Yararlı MCP giriş noktaları
`Billing::ChargeCustomer.call` gibi ad alanına sahip bir sınıf, modül veya yöntem için kullanın.
Bir değişiklikten önce çağıranları ve alt sınıfları görmek için bir modelde veya service object'te gelen yönde dolaşım kullanın.
Grafın göremediği `require` yolları, rota dizeleri ve dinamik olarak tanımlanan yöntemler için kullanın.
İlgili rehberler
Bir PHP kod tabanı hâlâ gelir üretiyorsa ama kimse bir ajanın onun içinde başıboş dolaşmasını istemiyorsa ilgilidir.
Uzantılar
.php, .php3, .php4, .php5, +2 daha
Python kod tabanları servisler, betikler, tip taslakları ve operasyonel bağlantı kodu genelinde yayıldığında yararlıdır.
Uzantılar
.py, .pyi, .pyw