carthage-software/mago
Mago is an extremely fast PHP linter, formatter, and static analyzer written in Rust. It brings Rust-inspired speed and reliability to PHP projects with a modern toolchain and great developer experience, plus multiple install options (script, Homebrew, Composer).
Mago's analyzer is a powerful static analysis engine that finds logical errors, type mismatches, and potential bugs in your code before you run it. It's the core of Mago's ability to ensure your code is not just well-styled, but also correct and robust.
While they both find issues, the analyzer and the linter operate at different levels of understanding.
The linter is a style editor. It looks at the structure of your code. It checks for stylistic issues, inconsistencies, and code smells (e.g., "this if statement has no else"). It doesn't know what your code does.
The analyzer is a fact-checker. It builds a deep, semantic understanding of your entire codebase. It knows what types your functions return, what properties your classes have, and what exceptions can be thrown. It finds logical impossibilities (e.g., "you're calling a method that doesn't exist on this object").
:::tip Analogy If your code were an essay, the linter would be the grammar and style checker, while the analyzer would be the editor who checks your facts and ensures your arguments are logical. :::
mago analyze command and its flags.How can I help you explore Laravel packages today?