Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Phplint Laravel Package

overtrue/phplint

PHPLint is a fast PHP linting tool that runs multiple lint processes in parallel, speeding up code checks for large projects. Install via Composer, PHAR, Docker, or Phive, and configure it to fit your workflow.

View on GitHub
Deep Wiki
Context7

PHPLint is a fast PHP linting tool that speeds up checking of PHP files by running several lint processes in parallel. It is a full rewrite (v9.x) sharing one codebase across PHP 8.x, with complete documentation and unit tests.

  • Parallel linting of multiple files for faster results
  • Configurable via phplint.yml and CLI options
  • Multiple install methods: Composer, PHAR, Docker, Phive
  • CI-friendly with clear exit codes and reporting

Requires PHP >= 8.2 for the actively developed 9.x line.

Frequently asked questions about Phplint
What is overtrue/phplint and how does it help Laravel projects?
overtrue/phplint is a PHP syntax linter that runs multiple lint processes in parallel to speed up checking large codebases. In Laravel projects it can lint app, routes, config, and other paths quickly, and it can be installed via Composer, PHAR, Docker, or Phive. It is a CLI tool, so teams usually call it from a Composer script, a custom Artisan command, or CI.
How do I install overtrue/phplint with Composer in a Laravel app?
Install it as a development dependency with composer require --dev overtrue/phplint. Then run vendor/bin/phplint from your project root or wire it into a Composer script. You can configure paths, excludes, and extensions instead of relying on defaults.
How can I run PHPLint from a Laravel Artisan command?
PHPLint does not replace Artisan, but its CLI can be invoked from a custom Artisan command or a Symfony Process call. Many Laravel teams keep a thin Artisan wrapper around vendor/bin/phplint so local and CI commands share the same configuration. The 9.7.3 release is a drop-in for an existing wrapper, while 9.8 is preparing for Symfony Console 8.
How do I configure parallel lint jobs in PHPLint?
Parallelism is controlled by the jobs configuration option, which sets how many lint processes PHPLint runs at once. Tune jobs to the CPU and memory available in your local environment or CI runner. This is the main lever for cutting lint time on large Laravel codebases.
Which PHP and Laravel versions does overtrue/phplint support?
PHPLint 9.x requires PHP 8.2 or newer, while 9.6 supports PHP 8.1 and newer. The 9.8 line remains PHP 8.2 or newer. Older Laravel 8.x projects remain on PHPLint v3.4.0, which does not include parallel jobs, so check the version matrix before upgrading.
Can I use PHPLint in Laravel CI/CD pipelines?
Yes, PHPLint is a CLI tool that fits naturally into CI steps after Composer install. Use its exit code to fail the job on syntax errors, and avoid --ignore-exit-code unless you deliberately want CI to pass despite lint failures. The 9.7.3 release changes only repository hygiene and does not alter Composer package behavior in your pipelines.
How do I exclude vendor or storage directories from PHPLint?
Configure the paths to scan and the exclude rules in PHPLint's configuration so Laravel directories like vendor, storage, and bootstrap/cache are skipped. You can also limit linting to specific file extensions. Keep excludes explicit for generated or cached files to avoid slow, noisy runs.
What is the difference between PHPLint and php -l?
php -l checks one PHP file at a time, while PHPLint runs several lint processes in parallel across many files. PHPLint also adds path configuration, excludes, extension filters, and structured results for local or CI use. It is a syntax checker, not a static analyzer or code style tool.
Is overtrue/phplint 9.7 still maintained?
PHPLint 9.7.3 is the terminal release on the 9.7 branch, so there will be no further patches, including security or compatibility fixes. A ^9.7 constraint is safe today but is now a dead-end constraint, and future fixes must come from 9.8 or later. The next release is planned as the final stable 9.8.0, while 9.8.0-rc.2 should still be treated as unstable until GA.
How do exit codes and caching affect PHPLint in production use?
Exit code handling is unchanged in 9.7.3, so use --ignore-exit-code deliberately or your CI can silently pass despite lint failures. Cache behavior is also unchanged on 9.7.3; the restored cache option and cache_manager guard fix are 9.8-line changes. If you share caches across jobs, keep your cache-dir isolation requirement in place.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo