Wsparcie dla PHP w Maguyva: długowieczne aplikacje webowe bez ślepych edycji
Ważne, gdy baza kodu PHP wciąż generuje przychód, ale nikt nie chce, by agent poczynał sobie w niej na własną rękę.
Rozszerzenia
.php, .php3, .php4, .php5, +2 więcej
Maguyva obsługuje Ruby przez AST, symbole i graf, dzięki czemu agenci AI śledzą klasy, moduły, metody singletonowe i konstruktory w bazach kodu Rails i Ruby.
Ruby mocno opiera się na konwencjach i metaprogramowaniu. Metody są generowane przez attr_accessor, klasy są ponownie otwierane w innych plikach, a przestrzenie nazw zagnieżdżają kilka poziomów modułów. Czytelna powierzchnia ukrywa, do której metody naprawdę trafia wywołanie, a toporne wyszukiwanie tekstowe zwraca każde call i każde perform w aplikacji.
Maguyva daje agentowi klasy, moduły, metody i ich wywołujących jako strukturę, aby śledził zmianę w całej aplikacji zamiast zgadywać.
Maguyva obejmuje pliki .rb, .rbw, .rake i .gemspec oraz Gemfile i Rakefile. Wyodrębniane są metody instancji i metody singletonowe (def self.call), przy czym metody singletonowe są oznaczane jako statyczne. Deklaracje attr_reader, attr_writer i attr_accessor liczą się jako metody dostępowe, a symbole są kwalifikowane przestrzenią nazw modułu i klasy.
ClassName.new i Namespace::ClassName.new liczą się jako tworzenie instancji, a typowanie odbiorców śledzi lokalne przypisania i @instance_variables, dzięki czemu wywołanie na przypisanym obiekcie można rozwiązać do jego klasy. Graf zapisuje też dziedziczenie, dołączanie modułów, nadpisania, krawędzie raise i rescue oraz odczyty i zapisy.
Wywołania metaprogramowania (define_method, send, method_missing, class_eval i podobne), pomocnicze typy T:: z Sorbeta oraz typowe wywołania enumerable (each, collect, reject i podobne) są filtrowane z relacji, aby wyróżnić kod aplikacji.
Billing::ChargeCustomer.call i z których zadań i kontrolerów?” (find_symbol, potem dependency_search incoming)ApplicationRecord i dołączają Auditable?” (dependency_search)get_task_context)require i load to zwykłe wywołania metod, więc preset imports w structural_search niczego nie wybiera. Aby je wypisać, użyj text_pattern_search.define_method lub obsługiwane przez method_missing nie są wyodrębniane jako symbole, a te wywołania są filtrowane jako szum metaprogramowania.Podłącz repozytorium za pomocą szybkiego startu, a potem sprawdź macierz obsługi na stronie zgodności. W przypadku innych repozytoriów w językach dynamicznych porównaj z przewodnikiem po języku Python.
Najlepsze dopasowanie
Workflow agentów
Szczegóły silnika
Przydatne punkty wejścia MCP
Używaj go z klasą, modułem lub metodą z przestrzenią nazw, taką jak `Billing::ChargeCustomer.call`.
Przed zmianą użyj przejścia incoming na modelu lub obiekcie usługi, aby zobaczyć wywołujących i podklasy.
Używaj go do ścieżek `require`, ciągów tras i metod definiowanych dynamicznie, których graf nie widzi.
Powiązane przewodniki
Ważne, gdy baza kodu PHP wciąż generuje przychód, ale nikt nie chce, by agent poczynał sobie w niej na własną rękę.
Rozszerzenia
.php, .php3, .php4, .php5, +2 więcej
Przydatne, gdy bazy kodu Python rozrastają się na usługi, skrypty, stuby typów i kod spajający operacje.
Rozszerzenia
.py, .pyi, .pyw