دعم Maguyva للغة PHP: تطبيقات ويب طويلة العمر دون تعديلات عمياء
ذات صلة عندما تظل قاعدة كود PHP تُدرّ إيرادات، لكن لا أحد يريد لوكيل أن يتصرّف فيها بحرية دون ضابط.
الامتدادات
.php, .php3, .php4, .php5, +2 أخرى
يدعم Maguyva لغة Ruby بشجرة AST والرموز والرسم البياني، ليتمكن وكلاء الذكاء الاصطناعي من تتبّع الفئات والوحدات وأساليب singleton والمُنشئات في قواعد شيفرة Rails وRuby.
تعتمد Ruby كثيرًا على الاصطلاحات والبرمجة الوصفية. تُولَّد الأساليب عبر attr_accessor، وتُعاد فتح الفئات في ملفات أخرى، وتتداخل الوحدات في نطاقات الأسماء على مستويات عدة. يُخفي السطح المقروء الأسلوبَ الذي ينتهي إليه الاستدعاء فعلًا، ويُرجع البحث النصي الخشن كل call وكل perform في التطبيق.
يمنح Maguyva الوكيل الفئات والوحدات والأساليب ومستدعيها على هيئة بنية، ليتتبّع التغيير عبر التطبيق بدل التخمين.
يغطي Maguyva الملفات .rb و.rbw و.rake و.gemspec، إضافة إلى Gemfile وRakefile. تُستخرج أساليب المثيلات وأساليب singleton (def self.call)، وتُعلَّم أساليب singleton بأنها static. وتُعدّ تصريحات attr_reader وattr_writer وattr_accessor أساليبَ وصول، وتُؤهَّل الرموز بنطاق اسم الوحدة والفئة.
يُعدّ ClassName.new وNamespace::ClassName.new إنشاءً لمثيلات، ويتتبّع تحديد نوع المستقبِل الإسنادات المحلية و@instance_variables، فيمكن أن يُحَلّ الاستدعاء على كائن مُسنَد إلى فئته. ويسجّل الرسم البياني أيضًا الوراثة وتضمين الوحدات والتجاوزات وحواف raise وrescue والقراءات والكتابات.
يُستبعد من العلاقات استدعاءات البرمجة الوصفية (define_method وsend وmethod_missing وclass_eval وما شابهها)، ومساعدات الأنواع T:: في Sorbet، واستدعاءات Enumerable الشائعة (each وcollect وreject وما شابهها)، لتبرز شيفرة التطبيق.
Billing::ChargeCustomer.call، ومن أي مهام ووحدات تحكّم؟” (find_symbol ثم dependency_search في الاتجاه الوارد)ApplicationRecord وتضمّن Auditable؟” (dependency_search)get_task_context)require وload استدعاءات أساليب عادية، لذا لا يختار الإعداد المسبق imports في structural_search أي شيء. استخدم text_pattern_search لسردها.define_method أو التي يعالجها method_missing لا تُستخرج رموزًا، وتُستبعد هذه الاستدعاءات بوصفها ضجيج برمجة وصفية.اربط مستودعًا عبر دليل البدء السريع، ثم راجع مصفوفة الدعم في صفحة التوافق. ولمستودعات اللغات الديناميكية الأخرى، قارن مع دليل لغة Python.
الأنسب لـ
سير عمل الوكلاء
تفاصيل المحرك
نقاط دخول مفيدة عبر MCP
استخدمه لفئة أو وحدة أو أسلوب ضمن نطاق أسماء، مثل `Billing::ChargeCustomer.call`.
قبل أي تغيير، استخدم التتبّع في الاتجاه الوارد على نموذج أو service object لرؤية المستدعين والفئات الفرعية.
استخدمه لمسارات `require` وسلاسل المسارات والأساليب المعرّفة ديناميكيًا التي لا يراها الرسم البياني.
أدلة ذات صلة
ذات صلة عندما تظل قاعدة كود PHP تُدرّ إيرادات، لكن لا أحد يريد لوكيل أن يتصرّف فيها بحرية دون ضابط.
الامتدادات
.php, .php3, .php4, .php5, +2 أخرى
مفيدة عندما تنتشر قواعد كود Python عبر الخدمات والنصوص البرمجية وملفات الأنواع النائبة والوصلات التشغيلية.
الامتدادات
.py, .pyi, .pyw