From f77fc5e2477028ce818cc4e76b424f5ac5e19b53 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Sun, 9 Mar 2025 22:42:47 -0400 Subject: [PATCH] Add PHP 8.4 build, run tests with Symfony 7.3 and 7.4, add Symfony 8.0 support --- .github/workflows/ci.yaml | 11 +++++++++-- PhpUnit/AbstractCompilerPassTestCase.php | 2 -- Tests/Fixtures/DependableExtension.php | 16 ++++------------ ...atthiasDependencyInjectionTestExtension.php | 16 ++++------------ .../NonDependablePrependableExtension.php | 18 +++++------------- Tests/Fixtures/NonPrependableTestExtension.php | 16 ++++------------ Tests/Fixtures/PrependableTestExtension.php | 16 ++++------------ Tests/Fixtures/SimpleExtension.php | 16 ++++------------ composer.json | 8 ++++---- 9 files changed, 38 insertions(+), 81 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 78decd8..830b722 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,19 +14,26 @@ jobs: - '8.1' - '8.2' - '8.3' + - '8.4' dependency: - '' symfony: - '5.4.*' - '6.4.*' - - '7.0.*' + - '7.3.*' include: - php: '8.1' symfony: '5.4.*' dependency: 'lowest' + - php: '8.4' + symfony: '7.4.*@dev' + dependency: '' + - php: '8.4' + symfony: '8.0.*@dev' + dependency: '' exclude: - php: '8.1' - symfony: '7.0.*' + symfony: '7.3.*' fail-fast: false steps: - name: Checkout diff --git a/PhpUnit/AbstractCompilerPassTestCase.php b/PhpUnit/AbstractCompilerPassTestCase.php index 294ae9a..2456d3b 100644 --- a/PhpUnit/AbstractCompilerPassTestCase.php +++ b/PhpUnit/AbstractCompilerPassTestCase.php @@ -2,7 +2,6 @@ namespace Matthias\SymfonyDependencyInjectionTest\PhpUnit; -use PHPUnit\Framework\Attributes\CoversNothing; use PHPUnit\Framework\Attributes\Test; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -20,7 +19,6 @@ abstract protected function registerCompilerPass(ContainerBuilder $container): v * This test will run the compile method. */ #[Test] - #[CoversNothing] final public function compilation_should_not_fail_with_empty_container(): void { try { diff --git a/Tests/Fixtures/DependableExtension.php b/Tests/Fixtures/DependableExtension.php index 60c0ba3..c8437fe 100644 --- a/Tests/Fixtures/DependableExtension.php +++ b/Tests/Fixtures/DependableExtension.php @@ -3,27 +3,19 @@ namespace Matthias\SymfonyDependencyInjectionTest\Tests\Fixtures; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Extension\Extension; -class DependableExtension implements ExtensionInterface +class DependableExtension extends Extension { - public function load(array $config, ContainerBuilder $container): void + public function load(array $configs, ContainerBuilder $container): void { if ($container->hasParameter('parameter_from_non_dependable')) { $container->setParameter('dependable_parameter', 'dependable value'); } } - public function getAlias() + public function getAlias(): string { return 'dependable'; } - - public function getNamespace(): void - { - } - - public function getXsdValidationBasePath(): void - { - } } diff --git a/Tests/Fixtures/MatthiasDependencyInjectionTestExtension.php b/Tests/Fixtures/MatthiasDependencyInjectionTestExtension.php index aa19748..5d02991 100644 --- a/Tests/Fixtures/MatthiasDependencyInjectionTestExtension.php +++ b/Tests/Fixtures/MatthiasDependencyInjectionTestExtension.php @@ -5,13 +5,13 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\DependencyInjection\Reference; -class MatthiasDependencyInjectionTestExtension implements ExtensionInterface +class MatthiasDependencyInjectionTestExtension extends Extension { - public function load(array $config, ContainerBuilder $container): void + public function load(array $configs, ContainerBuilder $container): void { // load some service definitions $loader = new XmlFileLoader($container, new FileLocator(__DIR__)); @@ -41,16 +41,8 @@ public function load(array $config, ContainerBuilder $container): void $container->setDefinition('manual_with_reference', $definition); } - public function getAlias() + public function getAlias(): string { return 'matthias_dependency_injection_test'; } - - public function getNamespace(): void - { - } - - public function getXsdValidationBasePath(): void - { - } } diff --git a/Tests/Fixtures/NonDependablePrependableExtension.php b/Tests/Fixtures/NonDependablePrependableExtension.php index d6c9398..591b796 100644 --- a/Tests/Fixtures/NonDependablePrependableExtension.php +++ b/Tests/Fixtures/NonDependablePrependableExtension.php @@ -3,29 +3,21 @@ namespace Matthias\SymfonyDependencyInjectionTest\Tests\Fixtures; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -class NonDependablePrependableExtension implements ExtensionInterface, PrependExtensionInterface +class NonDependablePrependableExtension extends Extension implements PrependExtensionInterface { - public function load(array $config, ContainerBuilder $container): void + public function load(array $configs, ContainerBuilder $container): void { } - public function getAlias() + public function getAlias(): string { return 'non_dependable'; } - public function getNamespace(): void - { - } - - public function getXsdValidationBasePath(): void - { - } - - public function prepend(ContainerBuilder $container) + public function prepend(ContainerBuilder $container): void { $container->setParameter('parameter_from_non_dependable', 'non-dependable value'); } diff --git a/Tests/Fixtures/NonPrependableTestExtension.php b/Tests/Fixtures/NonPrependableTestExtension.php index 7ba9f0c..27db5d9 100644 --- a/Tests/Fixtures/NonPrependableTestExtension.php +++ b/Tests/Fixtures/NonPrependableTestExtension.php @@ -3,29 +3,21 @@ namespace Matthias\SymfonyDependencyInjectionTest\Tests\Fixtures; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Extension\Extension; -class NonPrependableTestExtension implements ExtensionInterface +class NonPrependableTestExtension extends Extension { public function prepend(ContainerBuilder $container): void { $container->setParameter('ignored_invocation', 'ignored value'); } - public function load(array $config, ContainerBuilder $container): void + public function load(array $configs, ContainerBuilder $container): void { } - public function getAlias() + public function getAlias(): string { return 'non_prependable_test'; } - - public function getNamespace(): void - { - } - - public function getXsdValidationBasePath(): void - { - } } diff --git a/Tests/Fixtures/PrependableTestExtension.php b/Tests/Fixtures/PrependableTestExtension.php index 490ccf9..4891f77 100644 --- a/Tests/Fixtures/PrependableTestExtension.php +++ b/Tests/Fixtures/PrependableTestExtension.php @@ -3,30 +3,22 @@ namespace Matthias\SymfonyDependencyInjectionTest\Tests\Fixtures; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -class PrependableTestExtension implements ExtensionInterface, PrependExtensionInterface +class PrependableTestExtension extends Extension implements PrependExtensionInterface { public function prepend(ContainerBuilder $container): void { $container->setParameter('prepend_parameter_set', 'prepended value'); } - public function load(array $config, ContainerBuilder $container): void + public function load(array $configs, ContainerBuilder $container): void { } - public function getAlias() + public function getAlias(): string { return 'prependable_test'; } - - public function getNamespace(): void - { - } - - public function getXsdValidationBasePath(): void - { - } } diff --git a/Tests/Fixtures/SimpleExtension.php b/Tests/Fixtures/SimpleExtension.php index e81317b..4b66d4a 100644 --- a/Tests/Fixtures/SimpleExtension.php +++ b/Tests/Fixtures/SimpleExtension.php @@ -3,24 +3,16 @@ namespace Matthias\SymfonyDependencyInjectionTest\Tests\Fixtures; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\DependencyInjection\Extension\Extension; -class SimpleExtension implements ExtensionInterface +class SimpleExtension extends Extension { - public function load(array $config, ContainerBuilder $container): void + public function load(array $configs, ContainerBuilder $container): void { } - public function getAlias() + public function getAlias(): string { return 'simple'; } - - public function getNamespace(): void - { - } - - public function getXsdValidationBasePath(): void - { - } } diff --git a/composer.json b/composer.json index c92ca5a..0b02ce6 100644 --- a/composer.json +++ b/composer.json @@ -17,9 +17,9 @@ "matthiasnoback/symfony-config-test": "^5.0 || ^6.0", "phpunit/phpunit": "^10.5.11 || ^11.0 || ^12.0", "sebastian/exporter": " ^5.0 || ^6.0 || ^7.0", - "symfony/dependency-injection": "^5.4 || ^6.2 || ^7.0", - "symfony/config": "^5.4 || ^6.2 || ^7.0", - "symfony/yaml": "^5.4 || ^6.2 || ^7.0" + "symfony/dependency-injection": "^5.4 || ^6.4 || ^7.0 || ^8.0", + "symfony/config": "^5.4 || ^6.4 || ^7.0 || ^8.0", + "symfony/yaml": "^5.4 || ^6.4 || ^7.0 || ^8.0" }, "autoload": { "psr-4" : { "Matthias\\SymfonyDependencyInjectionTest\\" : "" }, @@ -30,7 +30,7 @@ }, "extra": { "branch-alias": { - "dev-master": "5.0.x-dev" + "dev-master": "6.x-dev" } }, "minimum-stability": "dev",