News

Mago Is a Blazing Fast Linter, Formatter, And Static Analyzer for PHP, Written in Rust

Published
Mago Is a Blazing Fast Linter, Formatter, And Static Analyzer for PHP, Written in Rust image

Mago is a comprehensive PHP toolchain 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.

Mago's toolchain includes a static analyzer, a configurable linter, an architectural guard, and a code formatter. Think of a tool that combines features found in PHPStan/Psalm, PHP-CS, PHP-CS-Fixer, php-parser, and more:

mago analyze
mago lint
mago format
mago guard
mago ast

Each feature is highly configurable, and initializing Mago in your project is as easy as mago init. Mago can automatically configure your project based on the contents of composer.json.

Main Features

  • Fast: Built in Rust for maximum performance.
  • Lint: Identify issues in your codebase with customizable rules.
  • Static Analysis: Perform deep analysis of your codebase to catch potential type errors and bugs.
  • Automated Fixes: Apply fixes for many lint issues automatically.
  • Formatting: Automatically format your code to adhere to best practices and style guides.
  • Semantic Checks: Ensure code correctness with robust semantic analysis.
  • AST Visualization: Explore your code’s structure with Abstract Syntax Tree (AST) parsing.

📕 Get started with Mago by following the project's getting started guide

💻 The source code is available on GitHub at carthage-software/mago

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article
Laravel Rulebook: Business Rules That Change by Date image

Laravel Rulebook: Business Rules That Change by Date

Read article