laravel-readiness / tool
CLI: уровень готовности PHP-файлов к миграции в Laravel
v0.4.5
2026-07-16 12:31 UTC
Requires
- php: ^8.5
- illuminate/filesystem: ^13.0
- illuminate/support: ^13.0
- nikic/php-parser: ^5.7
- symfony/console: ^8.1
Requires (Dev)
- laravel/pint: ^1.29
- pestphp/pest: ^4.0
- phpstan/phpstan: ^2.2
- rector/rector: ^2.0
- symfony/var-dumper: ^8.1
README
CLI для охраны PHP-файлов при миграции в Laravel: помечаешь файл меткой — при правке проверка не даёт скатиться в легаси.
Запуск
# PHP 8.5+ composer install cd /path/to/project vendor/bin/laravel-ready path/to/File.php
Windows: скачать laravel-ready.exe с Releases (PHP на машине не нужен).
cd C:\path\to\project
laravel-ready.exe path\to\File.php
В текущей рабочей директории должен находиться laravel-ready.json. Пути
резолверов задаются относительно этого файла:
{
"resolvers": [
{
"prefix": "App\\",
"path": "app/"
}
]
}
Docker:
docker build -t laravel-ready .
docker run --rm -e FORCE_COLOR=1 \
-v /path/to/project:/project \
-w /project \
laravel-ready \
app/SomeFile.php
Exit 0 — ок для хука/CI, 1 — guard провален (или нет/несколько меток).
Метки (PHPDoc)
| Метка | Смысл |
|---|---|
@laravel-ready |
Под охраной: без AST-блокеров, deps ок |
@laravel-adapter |
Мост к легаси для Laravel-контура |
@legacy-adapter |
Мост только внутри легаси; AST только по @allows |
@legacy-perfect |
Почищен, но остаётся в легаси-контуре |
@legacy-code |
Явный легаси (findings не валят exit) |
@allows |
Модификатор для @legacy-adapter: $_COOKIE, setcookie, … |
@skipCheck |
Модификатор: при blockers не валить guard (exit 0, findings видны); на файл без/с несколькими метками не действует |
Public CLI contract (hooks/CI): CLI_CONTRACT_0x.md.
Архитектура и модель: ARCHITECTURE.md, READINESS_MODEL.md, RESOLUTION_AND_OUTPUT.md, MANIFEST.md.