Laramago — мой открытый PHP-пакет, который помогает Mago понимать Laravel-проекты. Он добавляет настройки проверок и сведения о привычных конструкциях фреймворка: моделях Eloquent, их свойствах, связях и запросах.

Для чего нужен Laramago
Mago объединяет линтер, форматирование и статический анализ PHP. В Laravel часть поведения скрыта за динамическими вызовами: свойство модели берётся из базы, метод запроса возвращает модель, а зависимость разрешается через контейнер. Для анализатора всё это нужно описать.
Я делаю Laramago, чтобы такие проверки было удобнее использовать в собственных проектах. Пакет дополняет Mago знаниями о Laravel и помогает находить ошибки до запуска приложения.
Что уже работает
- Laravel-пресет для линтера и форматирования, подключение через Composer. Существующая конфигурация Mago сохраняется.
- Анализ поддерживаемых свойств и связей Eloquent по исходникам миграций, casts, accessors и PHPDoc.
- Уточнение типов в стандартных запросах, локальных scopes, построителях и коллекциях моделей.
- Дополнительные сведения о конфигурации, контейнере и других поддерживаемых конструкциях Laravel.
- Экспорт метаданных конфигурации, маршрутов и переводов для инструментов разработки.
Основной анализ работает по исходникам без запуска Laravel и обращения к базе. При этом загружается Composer-автозагрузчик проекта. Поддержка каждой конструкции имеет свои границы: всю динамику приложения автоматически восстановить пока нельзя.
Что появилось в 0.1.5
В релизе 0.1.5 появился отдельный необязательный сборщик сведений о схеме базы для явно выбранных моделей. Он помогает дополнить анализ фактическими данными о таблицах и casts.
Пока этот режим поддерживает только SQLite в файле. Он включается отдельно и выполняет код приложения; обычные проверки без него по-прежнему доступны. Также в релизе усилены проверки актуальности метаданных и исправлены предупреждения в самом пакете.
Стадия проекта и версии
Сейчас Laramago — рабочий предрелиз с первым реальным внедрением. Моя нумерация отражает именно опыт использования. В версии 0.1.5:
- 0 — предрелизная стадия;
- 1 — число реальных проектов, на которых Laramago уже запущен;
- 5 — номер патч-версии.
Версия 1.0 появится, когда Laramago будет работать на десяти реальных проектах. Хочу проверить пакет на разных приложениях и их обычных задачах. Дальше — новые внедрения, исправления и расширение поддержки Laravel по найденным случаям.
Замеры и глубина анализа
На 16 октября 2026 года проверил Laramago 0.1.5 на одном реальном приложении и сопоставил поведение с PHPStan на открытом наборе из 33 пар «ошибка и исправленный вариант». Единого эквивалентного уровня PHPStan у связки Mago и Laramago нет: покрытие разных проверок пересекается.
В серии из трёх полных запусков медиана составила 415,83 с для Mago с Laramago, 69,37 с для PHPStan с Larastan на уровне 10 и 7,77 с для Mago без расширений. Это разные профили проверок на одном приложении; скорость пока требует работы. Результаты, ограничения сравнения и планы по оптимизации добавил в запись о проекте.
Где посмотреть
Пакет доступен на Packagist. Требуются PHP 8.2 или новее в пределах ветки PHP 8 и Composer 2. Установка, настройка и ограничения описаны в документации проекта.
Как создавался Laramago и почему я привязал версии к реальным внедрениям. Последующие новости собираю под меткой Laramago.

