Document password validation fork and PHP 8.4 requirement

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-08-18 19:01:39 +02:00
parent d8891315f9
commit b339f73bbc
+33
View File
@@ -516,6 +516,39 @@ Contao verschickt die Passwort-Mail über `OptInToken::send()` und setzt dort au
- **Wichtig (Stolperfalle):** Mails können auch aus einem CLI-Worker heraus verschickt werden. Dort gibt es keinen Request, aus dem der Translator eine Sprache ableiten könnte, und `kernel.default_locale` ist in Contao standardmäßig `en`. Der Listener liest die Sprache deshalb aus der Fallback-Startseite (`tl_page.type = 'root' AND fallback = '1'`), sonst wechselt der Text je nach Versandweg zwischen Deutsch und Englisch.
- Die Absender-/Footerdaten stehen direkt im Template, die übrigen Texte unter `survey.email.*` in den Übersetzungsdateien.
## Passwort-Policy: terminal42/contao-password-validation
Installiert, aber **bewusst noch nicht konfiguriert**. Die Konfiguration
`terminal42_password_validation` ist leer, alle Listener der Erweiterung steigen
über `hasConfiguration()` früh aus.
Wichtig: Die Erweiterung läuft als **Fork** unter `packages/contao-password-validation`,
eingebunden als Path-Repository in der Projekt-`composer.json`. Begründung und
Upstream-Abgleich stehen in `packages/contao-password-validation/FORK.md`.
Kurzfassung: Upstream verlangt `doctrine/dbal ^3.3` und `paragonie/hidden-string ^1.0`.
Ohne Fork zwingt Composer die Installation zu Downgrades (DBAL 4 → 3,
`constant_time_encoding` 3 → 2). Beide Constraints sind sachlich nicht nötig die
einzige echte DBAL-4-Inkompatibilität war ein `QueryBuilder::execute()`.
Datenbankfelder, die die Erweiterung angelegt hat:
- `tl_password_history` (neue Tabelle)
- `tl_member.pwChange`
- `tl_page.pwChangePage`
Stolperfalle: Direkt nach `composer require` liefert das **Frontend 500**
(`Unknown column 'j1.pwChangePage'`), weil die DCA-Felder vor der Migration noch
nicht in der Datenbank stehen. `contao:migrate` behebt das.
## Plattformanforderung PHP 8.4
Seit dem Update vom 18.08.2026 zieht `symfony/serializer` 8.0 die
Plattformanforderung des Projekts auf **PHP >= 8.4.1**. `php8.3` kann die
Contao-Konsole nicht mehr starten (`platform_check.php` bricht ab). Für
Konsolenbefehle `php` (8.5) oder `/usr/bin/php8.4` verwenden; der Contao Manager
ist in `contao-manager/manager.json` bereits auf `/usr/bin/php8.4` gesetzt.
## Wichtige Dateien nach Themengebiet
Frontend-Liste: