mir

Docs

⚠️ Experimental. mir is under active development and not yet production-ready. APIs, CLI flags, issue codes, and output formats may change between releases; expect false positives and rough edges.

A fast, incremental PHP static analyzer written in Rust, inspired by Psalm.

Features

Installation

From crates.io

cargo install mir-cli

Build from source

git clone --recurse-submodules https://github.com/jorgsowa/mir.git
cd mir
cargo build --release
# binary at target/release/mir

Note: The --recurse-submodules flag is required to initialize the phpstorm-stubs submodule that provides PHP built-in definitions. If you cloned without it, run:

git submodule update --init

Usage

mir                        # analyze current directory
mir src/ lib/              # analyze specific paths
mir --format json src/     # machine-readable output
mir --baseline baseline.xml src/  # suppress known issues

See docs/cli.md for the full CLI reference.

Documentation

Document Contents
docs/getting-started.md Installation, first run, understanding output
docs/configuration.md mir.xml reference, baselines, CI setup
docs/cli.md All flags, output formats, exit codes
docs/issue-kinds.md Every issue type mir can emit
docs/docblock.md Supported docblock annotations
docs/architecture.md Crate layout and analysis pipeline

Contributing

See CONTRIBUTING.md.

What’s next

License

MIT