- Add friendsofphp/php-cs-fixer ^3.75 and phpstan/phpstan ^2.0 to
require-dev; add .php-cs-fixer.dist.php (@Symfony ruleset with
phpdoc_to_comment ignored_tags) and phpstan.neon (level max,
treatPhpDocTypesAsCertain: false)
- Run CS Fixer and PHPStan in every CI matrix job alongside tests
- Add composer scripts: cs, cs-check, phpstan
- Add .php-cs-fixer.cache to .gitignore
- Fix all PHPStan max violations across src/: add return/param types,
narrow mixed config values with is_string()/is_array() guards,
use TaggedNodeInterface for scenario tag access in SessionsListener
- Remove GoutteFactory and its spec — the goutte driver and its
underlying client library are abandoned
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
The configuration now makes sessions a first-class citizen instead of
being centered around drivers. This allows defining several session based
on the same driver type.
Instead of allowing other extensions to register their own sessions to add
new drivers, they can now register a DriverFactory in the MinkExtension
during the extension initialization to make a new driver type available.