Skip to content

Commit 6cde672

Browse files
committed
Release v2.2.0: PHP 8.2+ and Symfony spec alignment.
Raise minimum PHP to 8.2, drop Symfony 6 from composer constraints, align CI matrix with 7.4/8.0/8.1, update docs and fix GenerateSecretKeyCommandTest for MysqlAes messages. EOF )" git tag -a v2.2.0 -m "$(cat <<'EOF' Release v2.2.0 - PHP 8.2+ required; symfony/* ^7.0 || ^8.0 - CI: Symfony 7.4, 8.0, 8.1 on PHP 8.2–8.5 - Docs: README, INSTALLATION, UPGRADING, CHANGELOG, RELEASE - Fix: GenerateSecretKeyCommandTest MysqlAes messages See docs/UPGRADING.md#upgrading-to-220
1 parent 9e3e440 commit 6cde672

22 files changed

Lines changed: 560 additions & 361 deletions

.github/workflows/ci.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# CI: tests on PHP 8.1–8.5 × Symfony 7.0, 8.0 (exclusions for incompatible pairs). Requires ext-sodium.
1+
# CI: tests on PHP 8.2–8.5 × Symfony 7.4, 8.0, 8.1 (exclusions for incompatible pairs). Requires ext-sodium.
22
# Coverage with PCOV; release updated via release.yml on tag push.
33
name: CI
44

@@ -16,17 +16,17 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
php: ['8.1', '8.2', '8.3', '8.4', '8.5']
20-
symfony: ['7.0', '8.0']
19+
php: ['8.2', '8.3', '8.4', '8.5']
20+
symfony: ['7.4', '8.0', '8.1']
2121
exclude:
22-
- php: '8.1'
23-
symfony: '7.0'
24-
- php: '8.1'
25-
symfony: '8.0'
2622
- php: '8.2'
2723
symfony: '8.0'
24+
- php: '8.2'
25+
symfony: '8.1'
2826
- php: '8.3'
2927
symfony: '8.0'
28+
- php: '8.3'
29+
symfony: '8.1'
3030

3131
steps:
3232
- name: Checkout code
@@ -71,8 +71,8 @@ jobs:
7171
fi
7272
echo "✅ All tests passed successfully"
7373
74-
- name: Run tests with coverage (PHP 8.2 + Symfony 7.0 only)
75-
if: matrix.php == '8.2' && matrix.symfony == '7.0'
74+
- name: Run tests with coverage (PHP 8.2 + Symfony 7.4 only)
75+
if: matrix.php == '8.2' && matrix.symfony == '7.4'
7676
run: |
7777
echo "📊 Generating coverage report..."
7878
composer test-coverage
@@ -165,9 +165,9 @@ jobs:
165165
coverage: pcov
166166
tools: composer:v2
167167

168-
- name: Install dependencies (Symfony 7.0)
168+
- name: Install dependencies (Symfony 7.4)
169169
run: |
170-
composer require symfony/config:^7.0 symfony/dependency-injection:^7.0 symfony/http-kernel:^7.0 symfony/property-access:^7.0 symfony/yaml:^7.0 symfony/var-exporter:^7.4 --no-interaction --no-update
170+
composer require symfony/config:^7.4 symfony/dependency-injection:^7.4 symfony/http-kernel:^7.4 symfony/property-access:^7.4 symfony/yaml:^7.4 symfony/var-exporter:^7.4 --no-interaction --no-update
171171
composer update symfony/* --with-all-dependencies --no-interaction --prefer-dist --no-progress
172172
173173
- name: Run tests with coverage

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,7 @@ clean:
118118
rm -f coverage.xml
119119
rm -f coverage-php.txt
120120
rm -f .php-cs-fixer.cache
121+
122+
# REQ-MAKE-008: update-deps (REQ-MAKE-008)
123+
BUNDLE_ROOT := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
124+
include $(BUNDLE_ROOT)/../.scripts/Makefile.update-deps.mk

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Doctrine Encrypt Bundle
22

3-
[![CI](https://github.com/nowo-tech/DoctrineEncryptBundle/actions/workflows/ci.yml/badge.svg)](https://github.com/nowo-tech/DoctrineEncryptBundle/actions/workflows/ci.yml) [![Packagist Version](https://img.shields.io/packagist/v/nowo-tech/doctrine-encrypt-bundle.svg?style=flat)](https://packagist.org/packages/nowo-tech/doctrine-encrypt-bundle) [![Packagist Downloads](https://img.shields.io/packagist/dt/nowo-tech/doctrine-encrypt-bundle.svg)](https://packagist.org/packages/nowo-tech/doctrine-encrypt-bundle) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![PHP](https://img.shields.io/badge/PHP-8.1%2B-777BB4?logo=php)](https://php.net) [![Symfony](https://img.shields.io/badge/Symfony-7%20%7C%208-000000?logo=symfony)](https://symfony.com) [![GitHub stars](https://img.shields.io/github/stars/nowo-tech/doctrine-encrypt-bundle.svg?style=social&label=Star)](https://github.com/nowo-tech/DoctrineEncryptBundle) [![Coverage](https://img.shields.io/badge/Coverage-100%25-brightgreen)](#tests-and-coverage)
3+
[![CI](https://github.com/nowo-tech/DoctrineEncryptBundle/actions/workflows/ci.yml/badge.svg)](https://github.com/nowo-tech/DoctrineEncryptBundle/actions/workflows/ci.yml) [![Packagist Version](https://img.shields.io/packagist/v/nowo-tech/doctrine-encrypt-bundle.svg?style=flat)](https://packagist.org/packages/nowo-tech/doctrine-encrypt-bundle) [![Packagist Downloads](https://img.shields.io/packagist/dt/nowo-tech/doctrine-encrypt-bundle.svg)](https://packagist.org/packages/nowo-tech/doctrine-encrypt-bundle) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![PHP](https://img.shields.io/badge/PHP-8.2%2B-777BB4?logo=php)](https://php.net) [![Symfony](https://img.shields.io/badge/Symfony-7.4%20%7C%208.0%20%7C%208.1%2B-000000?logo=symfony)](https://symfony.com)
44

5-
**Symfony bundle to encrypt Doctrine entity fields at rest** using [Halite](https://github.com/paragonie/halite) or [Defuse](https://github.com/defuse/php-encryption)—audited libraries, no custom crypto. For **Symfony 7 and 8** · PHP 8.1+. Suits **GDPR** and compliance (e.g. Art. 32); supports key rotation and [Nowo\AnonymizedBundle](https://github.com/nowo-tech/AnonymizedBundle) for anonymization and erasure.
5+
**Symfony bundle to encrypt Doctrine entity fields at rest** using [Halite](https://github.com/paragonie/halite) or [Defuse](https://github.com/defuse/php-encryption)—audited libraries, no custom crypto. For **Symfony 7.4+ and 8** · PHP 8.2+. Suits **GDPR** and compliance (e.g. Art. 32); supports key rotation and [Nowo\AnonymizedBundle](https://github.com/nowo-tech/AnonymizedBundle) for anonymization and erasure.
66

77
> **Found this useful?** [Install from Packagist](https://packagist.org/packages/nowo-tech/doctrine-encrypt-bundle) · Give it a **star** on [GitHub](https://github.com/nowo-tech/DoctrineEncryptBundle) so more developers can find it.
88
@@ -36,7 +36,7 @@ Looking for **Doctrine encryption**, **encrypt entity fields**, **Halite Symfony
3636
- ✅ Console commands: status, generate secret key, encrypt/decrypt database, **rotate keys** (backup, decrypt, change keys, re-encrypt with confirmations)
3737
-**Key rotation** — one command or manual steps; combinable with [Nowo\AnonymizedBundle](https://github.com/nowo-tech/AnonymizedBundle) for GDPR-compliant anonymization and erasure
3838
-**Symfony Flex** recipe (register bundle + config; see [docs/INSTALLATION.md](docs/INSTALLATION.md))
39-
- ✅ Compatible with **Symfony 7 and 8** and **Doctrine ORM 2.x and 3.x**
39+
- ✅ Compatible with **Symfony 7.4+ and 8** and **Doctrine ORM 2.x and 3.x**
4040
- ✅ Compatible with **FrankenPHP** (HTTP runtime and optional **worker** mode; demos default to **`APP_ENV=dev`** with **Caddyfile.dev**, i.e. no PHP worker — see [docs/DEMO-FRANKENPHP.md](docs/DEMO-FRANKENPHP.md) and [Installation → FrankenPHP](docs/INSTALLATION.md#frankenphp-runtime-and-worker-mode))
4141

4242
## Installation
@@ -165,13 +165,13 @@ Values are encrypted on persist/update and decrypted on load. For **programmatic
165165

166166
## Requirements
167167

168-
- PHP >= 8.1
169-
- **Symfony 7 or 8** (^7.0 \|\| ^8.0). Current releases of this package require Symfony 7 or 8 (see `composer.json`).
168+
- PHP >= 8.2
169+
- **Symfony 7.4+ or 8** (^7.0 \|\| ^8.0; tested on **7.4**, **8.0**, **8.1**). See `composer.json`.
170170
- Doctrine ORM ^2.15 \|\| ^3.0
171171
- paragonie/halite (included); for Defuse: `defuse/php-encryption ^2.1`
172172
- ext-sodium recommended for Halite (or sodium_compat)
173173

174-
See [docs/INSTALLATION.md](docs/INSTALLATION.md#requirements) and [docs/UPGRADING.md](docs/UPGRADING.md) for compatibility notes.
174+
See [docs/INSTALLATION.md](docs/INSTALLATION.md#requirements) and [docs/UPGRADING.md](docs/UPGRADING.md#upgrading-to-220) for compatibility notes.
175175

176176
## Demo
177177

composer.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@
4040
}
4141
],
4242
"require": {
43-
"php": ">=8.1 <8.6",
43+
"php": ">=8.2 <8.6",
4444
"doctrine/orm": "^2.15 || ^3.0",
4545
"paragonie/halite": "^5.1",
4646
"paragonie/sodium_compat": "^1.20 || ^2.0",
47-
"symfony/config": "^6.0 || ^7.0 || ^8.0",
48-
"symfony/dependency-injection": "^6.0 || ^7.0 || ^8.0",
49-
"symfony/http-kernel": "^6.0 || ^7.0 || ^8.0",
50-
"symfony/property-access": "^6.0 || ^7.0 || ^8.0",
51-
"symfony/var-exporter": "^6.0 || ^7.0 || ^8.0",
52-
"symfony/yaml": "^6.0 || ^7.0 || ^8.0",
47+
"symfony/config": "^7.0 || ^8.0",
48+
"symfony/dependency-injection": "^7.0 || ^8.0",
49+
"symfony/http-kernel": "^7.0 || ^8.0",
50+
"symfony/property-access": "^7.0 || ^8.0",
51+
"symfony/var-exporter": "^7.0 || ^8.0",
52+
"symfony/yaml": "^7.0 || ^8.0",
5353
"twig/twig": "^3.2"
5454
},
5555
"require-dev": {
@@ -61,7 +61,7 @@
6161
"phpstan/phpstan-symfony": "^2.0",
6262
"phpunit/phpunit": "^10.0 || ^11.0",
6363
"rector/rector": "^2.0",
64-
"symfony/cache": "^6.0 || ^7.0 || ^8.0"
64+
"symfony/cache": "^7.0 || ^8.0"
6565
},
6666
"suggest": {
6767
"defuse/php-encryption": "Alternative to Halite for encryption",

composer.lock

Lines changed: 28 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,7 @@ release-verify:
104104
echo "$$demo OK (HTTP $$code)"; \
105105
done
106106
@echo "✅ All demos passed release-verify."
107+
108+
# REQ-MAKE-008: update-deps-all (REQ-MAKE-008)
109+
BUNDLE_ROOT := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/..)
110+
include $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/../../.scripts/Makefile.demo-aggregate-update-deps.mk

demo/symfony7/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,3 +151,6 @@ test: ensure-up
151151

152152
test-coverage: ensure-up
153153
$(COMPOSE) exec -e APP_ENV=test $(SERVICE_PHP) composer test-coverage 2>/dev/null || $(COMPOSE) exec $(SERVICE_PHP) composer test
154+
155+
# REQ-MAKE-008: update-deps (REQ-MAKE-008)
156+
include $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/../../../.scripts/Makefile.demo-update-deps.mk

0 commit comments

Comments
 (0)