Guides TYPO3 v14 extension development and upgrades, including version constraints, PHP requirements, controllers, ViewFactory, Fluid, events, backend modules, TCA, QueryBuilder, CLI commands, tests, and v14-only manual changes. Use when the user asks about TYPO3 v14, upgrades, migrations, extension modernization, LTS constraints, or current Core APIs.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Guides TYPO3 v14 extension development and upgrades, including version constraints, PHP requirements, controllers, ViewFactory, Fluid, events, backend modules, TCA, QueryBuilder, CLI commands, tests, and v14-only manual changes. Use when the user asks about TYPO3 v14, upgrades, migrations, extension modernization, LTS constraints, or current Core APIs.
Strategy: This collection targets TYPO3 v14.x only. Patterns here assume a v14 codebase.
For migrating from older majors, use typo3-rector, typo3-extension-upgrade, Fractor, and the official upgrade guide first.
TYPO3 API First: Always use TYPO3's built-in APIs, core features, and established conventions before creating custom implementations. Do not reinvent what TYPO3 already provides. Always verify that the APIs and methods you use exist and are not deprecated in TYPO3 v14 by checking the official TYPO3 documentation.
1. Version Strategy
Target: TYPO3 v14.x only
Version
Role for this collection
v14.x
Supported target — examples and constraints assume TYPO3 v14
Older majors
Not targeted — complete a core upgrade, then use these patterns
Best Practice: Declare TYPO3 v14-only constraints in composer.json and ext_emconf.php for new work.
Content Blocks:friendsoftypo3/content-blocks may require typo3/cms-core ^14.3 or higher (current 2.4.5 requires ^14.3) — match the Packagist constraint before pinning ^14.0 only.
2. PHP Requirements
Minimum PHP Version: 8.2
TYPO3 v14 requires PHP 8.2+. Use modern PHP features:
Core ships no generic BeforeRecordOperationEvent / AfterRecordOperationEvent; use SC_OPTIONS DataHandler hooks or documented TYPO3\CMS\Core\DataHandling\Event\* only (list)
Services.yaml Registration
# Configuration/Services.yamlservices:_defaults:autowire:trueautoconfigure:truepublic:falseVendor\Extension\:resource:'../Classes/*'exclude:-'../Classes/Domain/Model/*'# Event listener (alternative to #[AsEventListener] attribute)Vendor\Extension\EventListener\MyListener:tags:-name:event.listeneridentifier:'vendor-extension/my-listener'
Detailed Reference
Read the full guide when the task needs detailed examples, long templates, troubleshooting matrices, appendices, or sections not included above. Keep this file unloaded for narrow tasks so the skill follows progressive disclosure.