winget install --id CarthageSoftware.Mago
About Mago
Mago is a comprehensive toolchain for PHP that helps developers write better code. Inspired by the Rust ecosystem, Mago brings speed, reliability, and an exceptional developer experience to PHP projects of all sizes.
What's new in 1.28.0
Mago 1.28.0 A feature release led by sound generic type-checking in the analyzer: diamond merges, variance, bounds, Liskov substitution, and constructor arity are now all enforced. The linter gains five Laravel-focused rules, and the CLI picks up a version subcommand, a configurable version-drift-fail-level, and --remove-outdated-baseline-entries for pruning stale baseline entries. Internally, PHP source handling moves to a byte-native representation, retiring mago-atom in favour of mago-word and mago-bytes. The rest is a batch of analyzer and formatter fixes. ✨ Features Analyzer - Sound generic type-checking: enforces diamond merges, variance, bounds, Liskov substitution, and constructor arity. (5af93b3) Linter - Laravel rules: five rules for test assertions, queries, fake(), casts, and validation. (#1838, #1837, #1836, #1834, #1833, 6156709) CLI - version subcommand: prints the version, mirroring the --version flag. (#1840, d93d75a) - version-drift-fail-level: fail the run on minor or patch version drift, not just major. (#1864, 980dbfa) - --remove-outdated-baseline-entries: prunes baseline entries that no longer match any issue. (#1865, d35e9d3) 🐛 Bug Fixes Analyzer - redundant-type-comparison false positives: impossible negated assertions are no longer flagged. (#1842, c52b5bd) - Template defaults at call sites: a template's declared default type is now applied at the call site. (#1856, e8d5a84) Formatter - Mid-line echo tags: indent alignment restored for echo tags that don't begin a line. (#1857, bae65db) 📖 Documentation - WinGet: installation guide now mentions the W...
Version history
| Version | Updated | Notes |
|---|---|---|
| 1.28.0 | Unknown | Mago 1.28.0 A feature release led by sound generic type-checking in the analyzer: diamond merges, variance, bounds, Liskov substitution, and constructor arity are now all enforced. The linter gains five Laravel-focused r... |
| 1.27.1 | Unknown | Release notes |
| 1.27.0 | Unknown | Release notes |
| 1.26.0 | Unknown | Release notes |