typo3/cms-extbase
TYPO3 Extbase framework extension: provides the MVC foundation for TYPO3 CMS extensions, including controllers, domain models, persistence, validation, and property mapping. Used to build structured, maintainable TYPO3 applications and plugins.
extbase is a monolithic MVC framework tightly coupled with TYPO3 CMS (a legacy PHP-based CMS). While Laravel follows a modular, dependency-injection-driven architecture, extbase enforces a domain-specific abstraction layer (Domain Model, Repository, Service, Controller) that may not align cleanly with Laravel’s Eloquent/Service Container patterns.extbase assumes TYPO3’s database schema, TCA (Table Configuration), and backend integration, making it non-portable to Laravel without significant refactoring. Laravel’s database-agnostic and API-first design contrasts with extbase’s CMS-centric approach.extbase relies on PHP 5.x-era patterns (e.g., magic methods, global state via $GLOBALS), which conflict with Laravel’s PSR-compliant, modern PHP (8.1+) standards.extbase’s Domain Model + Fluid Templating stack.extbase system to Laravel, partial extraction of business logic (Domain Models, Services) could be viable, but Controllers/Repositories would need full rewrites.extbase only for TYPO3 backend modules while building a Laravel frontend, but this introduces dual-stack complexity.extbase logic via a Laravel API middleware, but this adds latency and coupling.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Architectural Mismatch | High | Isolate extbase in a micro-service or legacy wrapper layer. |
| Database Schema Conflicts | High | Requires custom Eloquent models or database views to reconcile TYPO3’s tt_content/sys_* tables with Laravel’s conventions. |
| Dependency Bloat | Medium | Use Composer’s replace to avoid pulling in TYPO3 core dependencies. |
| Performance Overhead | Medium | extbase’s reflection-based Domain Model may slow Laravel’s dependency injection. |
| Maintenance Burden | High | TYPO3’s GPL-2.0 license may conflict with Laravel’s MIT ecosystem. |
extbase?
extbase experience to manage the legacy layer?extbase being actively maintained? (TYPO3’s roadmap favors TYPO3 CMS 12+, not extbase.)| Laravel Component | extbase Equivalent |
Compatibility Notes |
|---|---|---|
| Eloquent Models | Domain Model (\TYPO3\CMS\Extbase\Domain\Model\*) |
Low: extbase models use magic getters/setters; Laravel prefers explicit properties. |
| Service Container | Dependency Injection (\TYPO3\CMS\Extbase\Object\ObjectManager) |
Medium: Can be bridged via Laravel’s bind() but adds complexity. |
| Routing | Plugin/Backend Routing | Low: TYPO3 uses URI paths (/typo3/...); Laravel uses route groups. |
| Templating | Fluid ({model.property}) |
Low: Laravel uses Blade (@foreach). Requires custom view resolver. |
| Validation | Validator (\TYPO3\CMS\Extbase\Validation\Validator\*) |
Medium: Can extend Laravel’s Validator with extbase rules. |
| Authentication | TYPO3 Backend User (BE_USER) | High Risk: Laravel’s Auth system is incompatible; requires custom middleware. |
extbase usage: Controllers, Repositories, Domain Models, Services.extbase.extbase in a Laravel service (e.g., ExtbaseFacade), but this couples tightly.extbase hooks or custom middleware.\TYPO3\CMS\Extbase\Domain\Model\*); Laravel’s PSR-4 may clash.autoload overrides or custom class maps.$GLOBALS['TYPO3_CONF_VARS'] vs. Laravel’s session driver.extbase uses Signal/Slot; Laravel uses Events.extbase signals to Laravel events in a listener.| Phase | Tasks | Dependencies |
|---|---|---|
| 1. Discovery | Map extbase components to Laravel equivalents. |
Business stakeholders. |
| 2. Isolation | Extract Domain Models/Services into Laravel-compatible classes. | Database schema analysis. |
| 3. API Layer | Expose extbase logic via Laravel API (if partial migration). |
Authentication/Authorization setup. |
| 4. Frontend | Replace Fluid templates with Blade. | Extracted business logic. |
| 5. Backend | Integrate TYPO3 backend with Laravel (if needed). | API layer or direct service binding. |
| 6. Deprecation | Phase out extbase in favor of Laravel-native solutions. |
Full feature parity. |
extbase).extbase is not Laravel-native; future updates may break compatibility.extbase-Laravel interactions (e.g., PestPHP).extbase in a separate repo (e.g., Git submodule).extbase.extbase is stagnant (last major update in 2020).How can I help you explore Laravel packages today?