From 94333c1dc5ae8f1b96d8207d26b705edda7ad62c Mon Sep 17 00:00:00 2001 From: Tomas Date: Wed, 14 Jan 2026 19:38:18 +0100 Subject: [PATCH 1/4] Add Symfony 8 support --- composer.json | 75 +++++++++---------- .../TomsguPdfMergerExtension.php | 8 +- src/Resources/config/pdf_merger.php | 19 +++++ 3 files changed, 61 insertions(+), 41 deletions(-) create mode 100644 src/Resources/config/pdf_merger.php diff --git a/composer.json b/composer.json index b8cba2b..3336e68 100644 --- a/composer.json +++ b/composer.json @@ -1,43 +1,42 @@ { - "name": "tomsgu/pdf-merger-bundle", - "description": "Symfony bundle that integrates tomsgu/pdf-merge lib.", - "type": "symfony-bundle", - "license": "MIT", - "keywords": [ - "pdf merger bundle merge" - ], - "authors": [ - { - "name": "Tomas Jakl", - "email": "tomasjakll@gmail.com" - } - ], - "require": { - "php": "^7.2 || ^8.0", - "symfony/framework-bundle": "^4.0 || ^5.0 || ^6.0 || ^7.0", - "tomsgu/pdf-merger": "0.*" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.0 || ^5.0 || ^6.0" - - }, - "config": { - "preferred-install": { - "*": "dist" + "name": "tomsgu/pdf-merger-bundle", + "description": "Symfony bundle that integrates tomsgu/pdf-merge lib.", + "type": "symfony-bundle", + "license": "MIT", + "keywords": [ + "pdf merger bundle merge" + ], + "authors": [ + { + "name": "Tomas Jakl", + "email": "tomasjakll@gmail.com" + } + ], + "require": { + "php": "^7.2 || ^8.0", + "symfony/framework-bundle": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", + "tomsgu/pdf-merger": "0.*" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0" + }, + "config": { + "preferred-install": { + "*": "dist" + }, + "sort-packages": true }, - "sort-packages": true - }, - "autoload": { - "psr-4": { - "Tomsgu\\PdfMergerBundle\\": "src/" + "autoload": { + "psr-4": { + "Tomsgu\\PdfMergerBundle\\": "src/" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "autoload-dev": { - "psr-4": { - "Tomsgu\\PdfMergerBundle\\Tests\\": "tests/" + "autoload-dev": { + "psr-4": { + "Tomsgu\\PdfMergerBundle\\Tests\\": "tests/" + } } - } } diff --git a/src/DependencyInjection/TomsguPdfMergerExtension.php b/src/DependencyInjection/TomsguPdfMergerExtension.php index 68c2e5a..95d5a21 100644 --- a/src/DependencyInjection/TomsguPdfMergerExtension.php +++ b/src/DependencyInjection/TomsguPdfMergerExtension.php @@ -23,11 +23,13 @@ public function load(array $configs, ContainerBuilder $container): void { $processor = new Processor(); $configuration = new Configuration(); - $loader = new Loader\XmlFileLoader($container, - new FileLocator(__DIR__.'/../Resources/config')); + $loader = new Loader\PhpFileLoader( + $container, + new FileLocator(__DIR__ . '/../Resources/config') + ); $config = $processor->processConfiguration($configuration, $configs); - $loader->load('pdf_merger.xml'); + $loader->load('pdf_merger.php'); $container->setAlias('Tomsgu\PdfMerger\PdfMerger', new Alias('tomsgu_pdf_merger.pdf_merger', false)); } } diff --git a/src/Resources/config/pdf_merger.php b/src/Resources/config/pdf_merger.php new file mode 100644 index 0000000..7c6775f --- /dev/null +++ b/src/Resources/config/pdf_merger.php @@ -0,0 +1,19 @@ +services(); + + $services->set('tomsgu_pdf_merger.pdf_merger', PdfMerger::class) + ->args([service('tomsgu_pdf_merger.fpdi')]) + ->private() + ; + + $services->set('tomsgu_pdf_merger.fpdi', Fpdi::class) + ->private() + ; +}; From 987b6a8844fba0ee25d993a7a9cb24ea5df6a778 Mon Sep 17 00:00:00 2001 From: Tomas Date: Wed, 14 Jan 2026 19:54:26 +0100 Subject: [PATCH 2/4] Add Symfony 8 support --- src/Resources/config/pdf_merger.php | 10 ++++++++-- src/Resources/config/pdf_merger.xml | 17 ----------------- 2 files changed, 8 insertions(+), 19 deletions(-) delete mode 100644 src/Resources/config/pdf_merger.xml diff --git a/src/Resources/config/pdf_merger.php b/src/Resources/config/pdf_merger.php index 7c6775f..b4caddd 100644 --- a/src/Resources/config/pdf_merger.php +++ b/src/Resources/config/pdf_merger.php @@ -8,12 +8,18 @@ return static function (ContainerConfigurator $container) { $services = $container->services(); + $fpdiServiceId = 'tomsgu_pdf_merger.fpdi'; + // BC for symfony < 5.0 + $fpdiService = function_exists(__NAMESPACE__ . '\service') + ? service($fpdiServiceId) + : ref($fpdiServiceId); + $services->set('tomsgu_pdf_merger.pdf_merger', PdfMerger::class) - ->args([service('tomsgu_pdf_merger.fpdi')]) + ->args([$fpdiService]) ->private() ; - $services->set('tomsgu_pdf_merger.fpdi', Fpdi::class) + $services->set($fpdiServiceId, Fpdi::class) ->private() ; }; diff --git a/src/Resources/config/pdf_merger.xml b/src/Resources/config/pdf_merger.xml deleted file mode 100644 index 10485ca..0000000 --- a/src/Resources/config/pdf_merger.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file From c6f493a379fcc65dc2219df8fe91ee65bf80d70b Mon Sep 17 00:00:00 2001 From: Tomas Date: Wed, 14 Jan 2026 20:06:55 +0100 Subject: [PATCH 3/4] Add Symfony 8 support --- .github/workflows/ci.yml | 92 ++++++++++++++++++++++++++++------------ 1 file changed, 66 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05c00e8..255b315 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,37 +22,77 @@ jobs: strategy: fail-fast: false matrix: - php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2' ] - name_suffix: [''] - stability: ['stable'] - composer_flags: [''] + php: + [ + "7.2", + "7.3", + "7.4", + "8.0", + "8.1", + "8.2", + "8.3", + "8.4", + "8.5", + ] + symfony: ["4.4.*", "5.4.*", "6.4.*", "7.4.*", "8.0.*"] + name_suffix: [""] + stability: ["stable"] + composer_flags: [""] include: - - php: '7.2' - name_suffix: ' (lowest deps)' - stability: 'stable' - composer_flags: '--prefer-lowest' - - php: '8.2' - name_suffix: ' (dev deps)' - stability: 'dev' - composer_flags: '' + - php: "7.2" + name_suffix: " (lowest deps)" + stability: "stable" + composer_flags: "--prefer-lowest" + - php: "8.5" + name_suffix: " (dev deps)" + stability: "dev" + composer_flags: "" + + exclude: + # Symfony 4.4 doesn't support PHP 8.1+ + - { php: "8.1", symfony: "4.4.*" } + - { php: "8.2", symfony: "4.4.*" } + - { php: "8.3", symfony: "4.4.*" } + - { php: "8.4", symfony: "4.4.*" } + - { php: "8.5", symfony: "4.4.*" } + + # Symfony 6.4 requires PHP 8.1+ + - { php: "7.2", symfony: "6.4.*" } + - { php: "7.3", symfony: "6.4.*" } + - { php: "7.4", symfony: "6.4.*" } + - { php: "8.0", symfony: "6.4.*" } + + # Symfony 7.4 requires PHP 8.2+ + - { php: "7.2", symfony: "7.4.*" } + - { php: "7.3", symfony: "7.4.*" } + - { php: "7.4", symfony: "7.4.*" } + - { php: "8.0", symfony: "7.4.*" } + - { php: "8.1", symfony: "7.4.*" } + + # Symfony 8.0 requires PHP 8.2+ + - { php: "7.2", symfony: "8.0.*" } + - { php: "7.3", symfony: "8.0.*" } + - { php: "7.4", symfony: "8.0.*" } + - { php: "8.0", symfony: "8.0.*" } + - { php: "8.1", symfony: "8.0.*" } steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - - uses: shivammathur/setup-php@v2 - with: - coverage: "none" - php-version: "${{ matrix.php }}" + - uses: shivammathur/setup-php@v2 + with: + coverage: "none" + php-version: "${{ matrix.php }}" - - name: Configure stability - if: "matrix.stability != 'stable'" - run: composer config minimum-stability ${{ matrix.stability }} + - name: Configure stability + if: "matrix.stability != 'stable'" + run: composer config minimum-stability ${{ matrix.stability }} - - name: Install dependencies - run: composer update --ansi --no-progress --prefer-dist ${{ matrix.composer_flags }} + - name: Install dependencies + run: composer update --ansi --no-progress --prefer-dist ${{ matrix.composer_flags }} - - name: Install PHPUnit - run: vendor/bin/simple-phpunit install + - name: Install PHPUnit + run: vendor/bin/simple-phpunit install - - name: Run tests - run: vendor/bin/simple-phpunit -v --colors=always + - name: Run tests + run: vendor/bin/simple-phpunit -v --colors=always From 6bcef6bc93786ecc68d99498297279133b65e8f2 Mon Sep 17 00:00:00 2001 From: Tomas Date: Wed, 14 Jan 2026 20:11:46 +0100 Subject: [PATCH 4/4] Add Symfony 8 support --- .github/workflows/ci.yml | 92 ++++++++++++---------------------------- 1 file changed, 26 insertions(+), 66 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 255b315..4913276 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,77 +22,37 @@ jobs: strategy: fail-fast: false matrix: - php: - [ - "7.2", - "7.3", - "7.4", - "8.0", - "8.1", - "8.2", - "8.3", - "8.4", - "8.5", - ] - symfony: ["4.4.*", "5.4.*", "6.4.*", "7.4.*", "8.0.*"] - name_suffix: [""] - stability: ["stable"] - composer_flags: [""] + php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] + name_suffix: [''] + stability: ['stable'] + composer_flags: [''] include: - - php: "7.2" - name_suffix: " (lowest deps)" - stability: "stable" - composer_flags: "--prefer-lowest" - - php: "8.5" - name_suffix: " (dev deps)" - stability: "dev" - composer_flags: "" - - exclude: - # Symfony 4.4 doesn't support PHP 8.1+ - - { php: "8.1", symfony: "4.4.*" } - - { php: "8.2", symfony: "4.4.*" } - - { php: "8.3", symfony: "4.4.*" } - - { php: "8.4", symfony: "4.4.*" } - - { php: "8.5", symfony: "4.4.*" } - - # Symfony 6.4 requires PHP 8.1+ - - { php: "7.2", symfony: "6.4.*" } - - { php: "7.3", symfony: "6.4.*" } - - { php: "7.4", symfony: "6.4.*" } - - { php: "8.0", symfony: "6.4.*" } - - # Symfony 7.4 requires PHP 8.2+ - - { php: "7.2", symfony: "7.4.*" } - - { php: "7.3", symfony: "7.4.*" } - - { php: "7.4", symfony: "7.4.*" } - - { php: "8.0", symfony: "7.4.*" } - - { php: "8.1", symfony: "7.4.*" } - - # Symfony 8.0 requires PHP 8.2+ - - { php: "7.2", symfony: "8.0.*" } - - { php: "7.3", symfony: "8.0.*" } - - { php: "7.4", symfony: "8.0.*" } - - { php: "8.0", symfony: "8.0.*" } - - { php: "8.1", symfony: "8.0.*" } + - php: '7.2' + name_suffix: ' (lowest deps)' + stability: 'stable' + composer_flags: '--prefer-lowest' + - php: '8.5' + name_suffix: ' (dev deps)' + stability: 'dev' + composer_flags: '' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - - uses: shivammathur/setup-php@v2 - with: - coverage: "none" - php-version: "${{ matrix.php }}" + - uses: shivammathur/setup-php@v2 + with: + coverage: "none" + php-version: "${{ matrix.php }}" - - name: Configure stability - if: "matrix.stability != 'stable'" - run: composer config minimum-stability ${{ matrix.stability }} + - name: Configure stability + if: "matrix.stability != 'stable'" + run: composer config minimum-stability ${{ matrix.stability }} - - name: Install dependencies - run: composer update --ansi --no-progress --prefer-dist ${{ matrix.composer_flags }} + - name: Install dependencies + run: composer update --ansi --no-progress --prefer-dist ${{ matrix.composer_flags }} - - name: Install PHPUnit - run: vendor/bin/simple-phpunit install + - name: Install PHPUnit + run: vendor/bin/simple-phpunit install - - name: Run tests - run: vendor/bin/simple-phpunit -v --colors=always + - name: Run tests + run: vendor/bin/simple-phpunit -v --colors=always