A command-line tool that runs multiple PHP static analysis and quality assurance tools with a single command.
PHPQA is a command-line tool that orchestrates multiple PHP static analysis and quality assurance tools, allowing developers to analyze their codebase with one command. It solves the problem of managing disparate tools with different configurations and CLI options by providing a unified interface, parallel execution, and consolidated reporting.
PHP developers and teams who want to integrate comprehensive code quality checks into their workflow or CI/CD pipelines without manually configuring each analysis tool.
Developers choose PHPQA because it dramatically simplifies running a suite of PHP QA tools, saves time with parallel execution, and provides consistent configuration and reporting across projects, making it easier to maintain code quality standards.
Analyze PHP code with one command
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows running over a dozen tools like PHPStan, Psalm, and PHPCS with a single command, eliminating the need to learn each tool's CLI syntax individually, as highlighted in the README's 'Why?' section.
Uses Robo.li to run tools concurrently by default, significantly reducing total analysis time for large codebases, which is a core feature emphasized in the philosophy.
Supports .phpqa.yml files for customizable tool settings, ignored paths, and output modes, adaptable to different project needs, with extensive examples in the 'Advanced configuration' section.
Includes detailed examples for Jenkins, GitLab CI, GitHub Actions, and CircleCI, making it easy to integrate into automated pipelines, as shown in the 'Continuous integration' part of the README.
Generates HTML reports from XML outputs for easier review, with offline support, requiring only the xsl extension, which simplifies code quality assessments without CI servers.
Since version 1.27, no tools are pre-installed; users must install each via Composer or manage binaries separately, increasing setup complexity and potential dependency conflicts, as admitted in the tool table.
Official Docker images are lean and may lack necessary PHP extensions for some tools, like database extensions for PHPUnit, requiring custom builds for full functionality, as warned in the Docker section.
Docker images might not have the latest versions of all tools, as noted in the README about older PHP 7.2 images, potentially missing new features or security updates.
While flexible, configuring .phpqa.yml for multiple tools and overriding settings can be intricate, especially for beginners, with numerous options detailed in the 'Advanced configuration' that require careful handling.