From 142a8a8681af80f05f248558553a925156b63b87 Mon Sep 17 00:00:00 2001 From: Sebastiaan Stok Date: Wed, 25 Feb 2026 21:03:26 +0100 Subject: [PATCH] Allow support for Symfony 8 --- .github/workflows/unit-tests.yml | 5 ++++ composer.json | 8 +++--- .../RollerworksPasswordStrengthExtension.php | 12 ++++++--- src/Resources/config/strength_validator.php | 25 +++++++++++++++++++ 4 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 src/Resources/config/strength_validator.php diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 7ae0e64..4ee4848 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -27,6 +27,11 @@ jobs: php-version: '8.2' composer-options: '--prefer-stable' symfony-version: '^7.0' + + - + php-version: '8.4' + composer-options: '--prefer-stable' + symfony-version: '^8.0' steps: - name: Checkout diff --git a/composer.json b/composer.json index df8debf..7d7d520 100644 --- a/composer.json +++ b/composer.json @@ -22,13 +22,13 @@ "require": { "php": "^8.2", "rollerworks/password-strength-validator": "^2.0", - "symfony/framework-bundle": "^6.0 || ^7.0" + "symfony/framework-bundle": "^6.4 || ^7.0 || ^8.0" }, "require-dev": { - "matthiasnoback/symfony-dependency-injection-test": "^4.3.1 || ^5.0", - "phpunit/phpunit": "^9.5", + "matthiasnoback/symfony-dependency-injection-test": "^4.3.1 || ^5.0 || ^6.2", + "phpunit/phpunit": "^9.5 || ^10.0", "rollerscapes/standards": "^1.0", - "symfony/phpunit-bridge": "^7.4" + "symfony/phpunit-bridge": "^7.4 || ^8.0" }, "minimum-stability": "dev", "prefer-stable": true, diff --git a/src/DependencyInjection/RollerworksPasswordStrengthExtension.php b/src/DependencyInjection/RollerworksPasswordStrengthExtension.php index 5e93adb..b3f8415 100644 --- a/src/DependencyInjection/RollerworksPasswordStrengthExtension.php +++ b/src/DependencyInjection/RollerworksPasswordStrengthExtension.php @@ -16,14 +16,20 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -use Symfony\Component\DependencyInjection\Loader; +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; +use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; final class RollerworksPasswordStrengthExtension extends Extension implements PrependExtensionInterface { public function load(array $configs, ContainerBuilder $container): void { - $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); - $loader->load('strength_validator.xml'); + if (class_exists(XmlFileLoader::class)) { + $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); + $loader->load('strength_validator.xml'); + } else { + $loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); + $loader->load('strength_validator.php'); + } } public function prepend(ContainerBuilder $container): void diff --git a/src/Resources/config/strength_validator.php b/src/Resources/config/strength_validator.php new file mode 100644 index 0000000..a794bc9 --- /dev/null +++ b/src/Resources/config/strength_validator.php @@ -0,0 +1,25 @@ + + * + * This source file is subject to the MIT license that is bundled + * with this source code in the file LICENSE. + */ + +use Rollerworks\Component\PasswordStrength\Validator\Constraints\PasswordStrengthValidator; +use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use function Symfony\Component\DependencyInjection\Loader\Configurator\service; + +return static function (ContainerConfigurator $container): void { + $di = $container->services(); + + $di->set(PasswordStrengthValidator::class) + ->args([service('translator')->nullOnInvalid()]) + ->tag('validator.constraint_validator'); +}; +