Laramago: как я учу Mago понимать Laravel

Laramago — Mago для Laravel: ноутбук с кодом и диагностикой, рядом схема свойств и связей моделей; иллюстрация Laravel
Мой пакет для Mago: поддержка Laravel, возможности 0.1.5 и путь к версии 1.0 через десять реальных проектов.

Продолжаю рассказывать о своих проектах. Сегодня — Laramago, пакет для проверки Laravel-кода с помощью Mago. Уже вышла версия 0.1.5. Расскажу, откуда он появился, что умеет и почему для версии 1.0 мне нужны десять реальных проектов.

Laramago — Mago для Laravel: ноутбук с кодом и диагностикой, рядом схема свойств и связей моделей; иллюстрация
Laramago — Mago для Laravel. Иллюстрация.

Зачем я его делаю

Хочется замечать ошибки ещё во время разработки. Mago умеет проверять PHP-код, находить проблемы с типами и форматировать файлы. Но у Laravel много своей магии: свойства моделей, связи, цепочки запросов, контейнер зависимостей. То, что привычно разработчику, анализатору нужно объяснить.

Для этого я и делаю Laramago. Хочу, чтобы проверки понимали устройство моих Laravel-проектов и помогали разбирать настоящие ошибки.

Как он создавался

Начал с Laravel-пресета и подключения через Composer. В первом релизе 0.0.1 уже были настройки линтера, форматирования и начальная поддержка вызовов Eloquent.

Постепенно добавлял сведения о свойствах моделей, связях, scopes, построителях запросов, коллекциях и конфигурации. Сценарии проверяю через сам Mago; поведение также сравниваю с Larastan. Если особенности приложения определить не удалось, важно сохранить диагностику, а не объявить код правильным.

Что есть сейчас

Пакет уже доступен на Packagist и используется в одном реальном проекте. Основной анализ читает исходники без запуска Laravel и подключения к базе. Это помогает работать со свойствами и связями моделей, уточнять типы результатов запросов и проверять поддерживаемые конструкции фреймворка.

В 0.1.5 добавил необязательный сборщик сведений о схеме базы для выбранных моделей. Пока он работает только с SQLite в файле и включается отдельно, с выполнением кода приложения. Одновременно улучшил проверку актуальности метаданных и исправил предупреждения в коде пакета.

Это рабочий предрелиз: возможностей уже немало, но опыт на разных приложениях ещё предстоит набрать.

Почему до версии 1.0 ещё девять проектов

У меня простая схема версий. В 0.1.5 первая цифра 0 означает предрелиз, вторая 1 — число реальных проектов, где Laramago запущен, а третья 5 — патч-версию.

Когда Laramago заработает на десяти реальных проектах, выпущу 1.0. Для меня это будет основанием сказать: пакет проверен в работе на разных приложениях. Пока продолжаю подключать его к проектам, находить ограничения и исправлять их.

Описание и ссылки собрал на странице Laramago. Исходники — на GitHub, пакет — на Packagist. О следующих шагах буду писать под меткой Laramago.

Оцените статью
( Пока оценок нет )
Блог Ичи

Добавить комментарий