mir
Install
Section titled “Install”composer require --dev miropen/mir-phpvendor/bin/mir src/cargo install mir-phpmir src/git clone https://github.com/jorgsowa/mir.gitcd mir && cargo build --release./target/release/mir src/What mir reports
Section titled “What mir reports”src/Controller/UserController.php:42:5 UndefinedMethod Method User::getName() does not existsrc/Service/Mailer.php:17:12 InvalidArgument Argument 1 of sendMessage expects string, int providedsrc/Domain/Order.php:88:9 NullMethodCall Cannot call method on possibly null valuesrc/Http/Search.php:23:14 TaintedSql Tainted data from $_GET flows into SQL sink
4 errors in 312 files · 0.42sBrowse by category
Section titled “Browse by category” Undefined Missing variables, functions, methods, classes, properties, constants.
Nullability Null arguments, dereferences, returns; possibly-null variants.
Type mismatches Arguments, return types, casts, operands, by-reference passing.
Array Invalid offsets and access on possibly-missing keys.
Redundancy Conditions that can't fail, casts and annotations that do nothing.
Dead code Unused variables, parameters, methods, properties, functions; unreachable code.
Inheritance Abstract / interface compliance, signature and visibility mismatches, final violations.
Security Taint analysis from `$_GET` / `$_POST` to HTML, SQL, and shell sinks.
Generics `@template` parameter constraint and substitution checks.
Other Deprecations, internal access, throws, readonly, parse and docblock errors.
Get going
Section titled “Get going” Getting Started Install, run your first analysis, understand the output.
Configuration `mir.xml`, error levels, issue handlers, baselines.
CLI Reference Every flag, output format, exit code.
Architecture How mir is built: Salsa, passes, caching.