Maguyva में PHP सपोर्ट: बिना आंख मूंदे एडिट किए दीर्घजीवी वेब ऐप
प्रासंगिक तब जब कोई PHP कोडबेस अब भी राजस्व ला रहा हो, लेकिन कोई नहीं चाहता कि कोई एजेंट उसमें मनमानी करे।
एक्सटेंशन
.php, .php3, .php4, .php5, +2 और
Maguyva, Ruby को AST, सिंबल और ग्राफ़ के साथ सपोर्ट करता है, ताकि AI एजेंट Rails और Ruby कोडबेस में क्लास, मॉड्यूल, singleton मेथड और कंस्ट्रक्टर ट्रेस कर सकें।
Ruby कन्वेंशन और मेटाप्रोग्रामिंग पर बहुत निर्भर है। मेथड attr_accessor से बनते हैं, क्लास दूसरी फ़ाइलों में फिर से खुलती हैं, और namespace मॉड्यूल को कई स्तरों तक नेस्ट करते हैं। पढ़ने में आसान सतह यह छिपा देती है कि कोई कॉल असल में किस मेथड तक पहुँचता है, और मोटा टेक्स्ट सर्च ऐप का हर call और हर perform लौटा देता है।
Maguyva एजेंट को क्लास, मॉड्यूल, मेथड और उनके कॉलर संरचना के रूप में देता है, ताकि वह अंदाज़ा लगाने के बजाय बदलाव को पूरे ऐप में फ़ॉलो कर सके।
Maguyva .rb, .rbw, .rake और .gemspec फ़ाइलों के साथ Gemfile और Rakefile को कवर करता है। इंस्टेंस मेथड और singleton मेथड (def self.call) निकाले जाते हैं, और singleton मेथड static के रूप में चिह्नित होते हैं। attr_reader, attr_writer और attr_accessor घोषणाएँ एक्सेसर मेथड गिनी जाती हैं, और सिंबल अपने मॉड्यूल और क्लास namespace से क्वालिफ़ाई होते हैं।
ClassName.new और Namespace::ClassName.new इंस्टैंशिएशन गिने जाते हैं, और रिसीवर टाइपिंग लोकल असाइनमेंट और @instance_variables को फ़ॉलो करती है, ताकि किसी असाइन किए गए ऑब्जेक्ट पर हुआ कॉल उसकी क्लास तक रिज़ॉल्व हो सके। ग्राफ़ इनहेरिटेंस, मॉड्यूल include, ओवरराइड, raise और rescue एज, और रीड और राइट भी दर्ज करता है।
मेटाप्रोग्रामिंग कॉल (define_method, send, method_missing, class_eval और इसी तरह के), Sorbet के T:: type हेल्पर, और आम Enumerable कॉल (each, collect, reject और इसी तरह के) संबंधों से फ़िल्टर किए जाते हैं, ताकि ऐप्लिकेशन कोड अलग दिखे।
Billing::ChargeCustomer.call को कौन कॉल करता है, और किन जॉब और कंट्रोलर से?” (find_symbol, फिर incoming दिशा में dependency_search)ApplicationRecord से इनहेरिट करते हैं और Auditable को include करते हैं?” (dependency_search)get_task_context)require और load साधारण मेथड कॉल हैं, इसलिए structural_search में imports प्रीसेट कुछ नहीं चुनता। इनकी सूची के लिए text_pattern_search इस्तेमाल करें।define_method से बने या method_missing द्वारा संभाले गए मेथड सिंबल के रूप में नहीं निकाले जाते, और ये कॉल मेटाप्रोग्रामिंग शोर के रूप में फ़िल्टर किए जाते हैं।क्विकस्टार्ट से रिपॉज़िटरी जोड़ें, फिर सपोर्ट मैट्रिक्स कम्पैटिबिलिटी पेज पर देखें। दूसरी डायनेमिक भाषाओं के रिपॉज़िटरी के लिए Python गाइड से तुलना करें।
सबसे उपयुक्त
एजेंट वर्कफ़्लो
इंजन विवरण
उपयोगी MCP एंट्री पॉइंट
`Billing::ChargeCustomer.call` जैसे नेमस्पेस वाले क्लास, मॉड्यूल या मेथड के लिए इस्तेमाल करें।
बदलाव से पहले कॉलर और सबक्लास देखने के लिए किसी model या service ऑब्जेक्ट पर incoming ट्रैवर्सल इस्तेमाल करें।
`require` पाथ, रूट स्ट्रिंग और डायनेमिक रूप से परिभाषित मेथड के लिए इस्तेमाल करें, जिन्हें ग्राफ़ नहीं देख सकता।
संबंधित गाइड
प्रासंगिक तब जब कोई PHP कोडबेस अब भी राजस्व ला रहा हो, लेकिन कोई नहीं चाहता कि कोई एजेंट उसमें मनमानी करे।
एक्सटेंशन
.php, .php3, .php4, .php5, +2 और
उपयोगी तब जब Python कोडबेस सर्विसेज़, स्क्रिप्ट, टाइप स्टब, और ऑपरेशनल ग्लू में फैल जाए।
एक्सटेंशन
.py, .pyi, .pyw