artisanpack-ui/code-style-pint
Laravel Pint preset matching ArtisanPack UI coding standards. Publishes a ready-made pint.json for apps or generates it via builder for packages. Optional WordPress-style spacing support via PHP-CS-Fixer stubs and commands.
Architecture Fit
pint + phpcs), adding complexity to CI/CD pipelines.Integration Feasibility
vendor:publish or artisanpack:publish-pint-config. The PintConfigBuilder simplifies programmatic setup in packages.PintConfigBuilder usage (e.g., in standalone packages).if ( $var )), adding a dependency and potential friction.Technical Risk
yoda_style, strict_types) may conflict with existing team conventions or legacy codebases, requiring opt-outs.Key Questions
yoda_style)? The PintConfigBuilder supports this, but manual edits may be needed.Stack Fit
PintConfigBuilder in pint-setup.php).Migration Path
./vendor/bin/pint --test).app/Features) to test impact.PintConfigBuilder to customize rules (e.g., disable strict_types).pint.json via composer require + vendor:publish.- name: Format Code
run: ./vendor/bin/pint --test
.phpcs.xml exclusions to isolate Pint’s scope.Compatibility
composer require laravel/pint).PintConfigBuilder usage.Sequencing
composer require laravel/pint).pint.json (Laravel) or generate via PintConfigBuilder (packages).PintConfigBuilder or manual pint.json edits.artisanpack-ui/code-style for static analysis (run after Pint).Maintenance
pint.json is version-controlled, making updates predictable.pint.json updates.Support
--test to show errors).yoda_style, strict_types).ordered_imports) may break legacy code.Scaling
vendor/, node_modules/.Failure Modes
| Scenario | Impact | Mitigation |
|---|---|---|
| Pint Fails in CI | Build breaks, developers blocked. | Use --test mode first; exclude problematic files. |
| Rule Conflicts | Developers disable Pint locally. | Enforce Pint in pre-commit hooks (e.g., Husky). |
| PHP-CS-Fixer Dependency | WordPress spacing breaks Pint. | Run PHP-CS-Fixer after Pint in CI. |
| IDE Formatting Overrides | Manual edits bypass Pint. | Configure IDE to use pint.json (e.g., VS Code settings). |
| Legacy Code Exclusions | Too many exclusions reduce value. | Gradually refactor excluded files to comply. |
Ramp-Up
pint.json and run in CI.pint --test.--test, --force, --exclude).yoda_style).How can I help you explore Laravel packages today?