smartbooster / standard-bundle
Bundle grouping all dev vendor that we use for testing and coding with the SMART BOOSTER standards
Package info
github.com/smartbooster/standard-bundle
Type:symfony-bundle
pkg:composer/smartbooster/standard-bundle
Requires
- php: ^8.1
- dama/doctrine-test-bundle: ^6.7|^7.1|^8.0
- doctrine/orm: ^2.13|^3.0
- friendsofphp/php-cs-fixer: ^3.86
- liip/test-fixtures-bundle: ^2.4|^3.0
- phpstan/phpstan-doctrine: ^1.3|^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-symfony: ^1.2|^2.0
- psalm/plugin-symfony: ^5.2
- spaze/phpstan-disallowed-calls: ^4.7
- symfony/framework-bundle: ^5.4|^6.2|^7.4
- symfony/validator: ^5.4|^6.2|^7.4
- vimeo/psalm: ^6.0
- yamadashy/phpstan-friendly-formatter: ^1.3
Requires (Dev)
- symfony/dotenv: ^5.4|^6.2|^7.4
- symfony/phpunit-bridge: ^7.4
Suggests
- phpmetrics/phpmetrics: Build static analysis from the php in src with make metrics command. Require to have nikic/php-parser ^4.18 to run.
This package is auto-updated.
Last update: 2026-07-10 16:30:09 UTC
README
Bundle grouping all dev vendor that we use for testing and coding with the SMARTBOOSTER standards.
What's inside !
- All the development vendors that we use daily to check our code quality:
- static analysis with PHPStan,
- security taint analysis with Psalm,
- checkstyle and coding standards with PHP-CS-Fixer
- native linters (php, twig, yaml, sf container)
- tests bundle configuration for PHPUnit
- Makefiles with QA and testing commands to easily run them.
Installation
# This bundle is not added to the symfony/recipes-contrib repo, you need to manually add the recipe endpoint on your composer.json composer config --json extra.symfony.endpoint '["https://api.github.com/repos/smartbooster/standard-bundle/contents/recipes.json", "flex://defaults"]' # Then require the bundle into your dev requirements: composer require --dev smartbooster/standard-bundle
When being prompted "Do you want to execute this recipe?" from the other bundle (Phpstan, Dama, ...) answer No and press enter.
The standard-bundle has its own recipe which will cover the bundles mentioned above (check the dotted manifest to see which files).
Don't forget to do a recipe reset to have the latest changes from the recipe copied files (see next section).
Updating the standard-bundle
If you require an upper version or update the bundle version on your project, run the following command to execute the recipe with the latest changes
composer update smartbooster/standard-bundle composer recipes:install smartbooster/standard-bundle --reset --force
Also check the CHANGELOG.md in case some vendor depedancie has been removed (the recipe reset force command doesn't handle removing past added recipe files).
Working on the bundle
Architecture Decision Records (ADR)
Every structuring decision made on the standard-bundle (adding, replacing or removing a tool/rule) must be tracked in an ADR, stored in the adr/ folder.
Name the file {date}-{topic}.md (e.g. 20260709-php-codesniffer-removal.md) and structure its content with the following sections:
- Context: the current situation and why it needs to change.
- Goal: what we are trying to achieve.
- Selected solution: the solution we chose (and, if relevant, the alternatives we discarded).
- Impact: the concrete consequences on the bundle (files added/changed/removed).
This practice is MANDATORY to help us recall why we did such changes in the past and must be taken seriously.
Updating the recipe dotted manifest
If the dotted manifest has to change (for any configurator), or for a new major version of the bundle,
you must create a new smartbooster.standard-bundle.{major}.{minor}.json with a distinct "ref" value.
Use the following PHP script to generate a new random "ref" value:
echo bin2hex(random_bytes(20));
Then add it to the recipes.json list.
Contributing
Pull requests are welcome.
Thanks to everyone who has contributed already.
This project is supported by SmartBooster