743 views
owned this note
# TYPO3 Camp Berlin 2025
[t3cb.de](https://www.t3cb.de/) | Hashtag auf verschiedenen Kanälen: #T3CB25
16.-18. Oktober 2025, Berlin-Kreuzberg im [bum.berlin](https://bum.berlin/)
# Sessions
- https://www.t3cb.de/programm/
## Freitag
### Test-driven-Development
- [Oliver Klee](https://www.oliverklee.de/)
- [Tea-Beispiel-Extension](https://github.com/TYPO3BestPractices/tea/)
- [Best-Practices-Team](https://typo3.org/community/teams/best-practices)
- [Testing-Workshop von Oli im November in Bonn](https://www.oliverklee.de/workshops/aktuelle-workshops/)
### Barriefreie Formulare
- Tom von undkonsorten.com
- [Folien](https://www.undkonsorten.com/blog/barrierefreie-formulare-mit-typo3)
### SEO Optimierung mit KI
- Sven Deutschländer; dskom
- Folien: https://www.dskom.de/wp-content/uploads/2025/10/TYPO3camp2025_Suche-Google-KI-SEO-GEO-AIO.pdf
- möglichst überall Schema.org für inhalte verwenden
- nicht mehr besuchte seiten, dokumente entfernen
- videos, audios aktiv nutzen und einbinden (TikTok)
- FAQ mit Schema nutzen
- Backlinks einsammeln (Quellen)
- Ratgeber per E-Mail anfordern
### Fluid-PDF
- Thomas Deuling
### display:grid FTW!
- Markus Timtner
- Folien: [Grid_Styled_Content](https://timtner.tech/grid_styled_content)
- Grundlagen von modernem CSS
- man braucht evtl gar kein Framework mehr
### Gewaltfreie Kommunikation
- [Oliver Klee](https://www.oliverklee.de/)
- [Folien zum Crashkurs](https://speakerdeck.com/oliverklee/gewaltfreie-kommunikation-ein-crashkurs-40ddbe02-c17c-4be6-a438-6f4e31114ed8)
- [GfK-Grundannahmen](https://github.com/oliverklee/workshop-handouts/blob/main/gfk/annahmen.tex)
### MCP, AI & Co.
- Martin Helmich ([LinkedIn](https://www.linkedin.com/in/martinhelmich), [my.typo3.org](https://my.typo3.org/u/mhelmich))
- [Slides auf Speakerdeck](https://speakerdeck.com/martinhelmich/t3cb25-mcp-the-duct-tape-of-the-ai-era)
### Von den Argonauten zu TYPO3
- Olivier Dobberkau
- Slides https://notes.typo3.org/sCDso7NxQU6tmaEhZ1M9vw#
## Samstag
### What the Hack
- Reidar
#### Vorsicht bei
- Aufgabe der Domain -> da hängen oft die Logins für SocialMedia dran!!
### Tracking und Matomo
- Volker, pagemachine
- wenn Cookie Banner korrekt konfiguriert, nur ca. 60% trackbar
- die versierten Personen klicken es weg
#### keine Cookies vs DSGVO komform
- keine Scripte einsetzen
- nur die vom Browser automatisch mitgesendeteen Daten legal verwertbar
- zeitverzögerte Auswertung der Logfiles
- teils doch recht unterschiedlich bei verschiedenen Providern
- Extension: pagemachime/typo3-tracking-matomo
#### übermittelte Daten
- aufgerufene URL Herkunft
- Seitentiel Browsersprache
- UserAgent
- ip-Adresse
#### 2. Teil
- Matomo Installation
##### Links
- [pagemetrics](https://pagemetrics.eu/)
- [EXT typo3-matomo-tracking](https://packagist.org/packages/pagemachine/typo3-matomo-tracking)
- [Consent Benchmark Report 2025](https://www.etracker.com/consent-benchmark2025)
- [FAQ zu Cookies und Tracking](https://www.baden-wuerttemberg.datenschutz.de/faq-zu-cookies-und-tracking-2/)
- bei Fragen: [per Mail](info@pagemachine.de) oder im Slack
### Andreas Wolf
- Observability mit OpenTelemetry
- signoz zum einlesen der logs
- foto der config.yml für docker
- foto yml config json logs (log generator aus gsb)
-
#### problemstellung
- warum gab es Exeption xy
### Content Blocks Deep-Dive
- André Kraus
- Präsentation https://www.autodudes.de/fileadmin/user_upload/presentation/2025-typo3-developer-days/2025-08-08-t3dd25-content-blocks-deep-dive.pdf
- Codebeispiele in GitHub Commits: https://github.com/krausandre/cb-demo-25
- Dokumentation https://docs.typo3.org/permalink/friendsoftypo3-content-blocks:introduction
- be:editRecord -> Link EditRecord ViewHelper in den changelogs 1.3 (deutlich kürzer) https://docs.typo3.org/p/friendsoftypo3/content-blocks/main/en-us/ChangeLog/1.3/Index.html#link-editrecord-viewhelper
### QA-Tools
- [Oliver Klee](https://www.oliverklee.de/)
- [Best-Practices-Team](https://typo3.org/community/teams/best-practices)
- Empfohlene Tools & Methoden
- Code-Reviews
- Composer-Unused
- Protected Branches
- PHP-CS-Fixer
- PHPStan
- PHPStan-Levels
- PHPStan-Baseline
- Rector
- verschiedene Linter
- PHP Lint
- XLIFF Lint
- TypoScript Lint
- YAML Lint
- JSON Lint
- Shellcheck
- Composer Normalize
- Composer PSR-Verify
- `.editorconfig`
- Continuous Integration
- Test-driven-Development (TDD)
- Unit-Tests
- Functional Tests
- PHP Mess Detection (PHPMD)
- Rector
### TYPO3 Upgrades - Vorstellung, Austausch über Vorgehen und Tools
- Karsten Nowak)
#### Wie starten, Analyse
- Infos zusammen sammeln (DB Version, PHP Version, Extensions)
- Check webspace, Komplexität, Anzahl der Seiten
- BE User: rollen, rechte
- db compare
- check internal links (alte bindungen typo3con/extfileadmin, Domains)
- verschachtelte storages? Kann passieren wenn man nicht aufpasst. Sowas MUSS korrigiert werden. Beim Upgrade perfekter Zeitpunkt, da man hinterher viel prüft
- Bash Script nutzen um:
- über SSH remote DB Abfragen machen zu können
- lokal mit Composer Dinge abzufragen
- Bestimmte Angaben (`typo3conf/ext`) in Extension zu finden (grep durch Dateien)
- Ausgaben so formatieren, dass sie einfach in Ticketsystem eingefügt werden können
- Idee: Beim Durchlauf des Script immer wieder abfragen ob Ticket erstellt werden soll und dann dieses über API des Ticketssystems (Bsp. Redmine) automatisch anlegen lassen. Spart Zeit für manuelles anlegen hinterher!
#### Durchführung
- rector/fractor für die Extension Updates (für die es keine Updates gibt) laufen lassen
- core upgrader package 2 nutzen um alle Core Wizards älterer TYPO3 Versionen zu haben (https://extensions.typo3.org/extension/core_upgrader2)
- In den einzelnen Branches (wenn man TYPO3 Versionen zwischendurch benötigt) nur das TYPO3 lauffähig machen und eventuell benötigte Extensions. Alles anderes erst am Ende (im letzten Branch)
- Script für automatische Abarbeitung der einzelnen Aufgaben in den einzelnen TYPO3 Versionen (Git Branches) https://github.com/peter-neumann-dev/ddev-cms-upgrader (ddev-cms-upgrader für TYPO3, Drupal, WordPress)
- zwischen drin immer mal ein DB Zwischenstand speichern um nicht alle Aufgaben immer gesammelt testen zu müssen. Dauert bei großen Datenbanken eben recht lange
- Großteil einer checkliste golive durch automatisches Upgrade Script ersetzt
- für bestimmte Punkte aber trotzdem noch sinnvoll
### Testen mit Playwright
- André & Manu von den AutoDudes
- Block-Artikel: https://www.autodudes.de/blog/automatisierte-tests-warum-wir-bei-der-ai-suite-auf-playwright-setzen
- Demo-Repository: https://github.com/autodudesde/playwright-demo
### Session Titel
- ...