Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cms Extbase Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Monolithic vs. Modular Fit: 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.
  • Tight CMS Coupling: 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.
  • Legacy PHP Practices: 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.

Integration Feasibility

  • Direct Integration: Low feasibility. Laravel’s Service Container, Eloquent ORM, and Blade templating are fundamentally different from extbase’s Domain Model + Fluid Templating stack.
  • Indirect Use Cases:
    • Legacy Migration: If migrating a TYPO3 + extbase system to Laravel, partial extraction of business logic (Domain Models, Services) could be viable, but Controllers/Repositories would need full rewrites.
    • Hybrid Backend: Possible to use extbase only for TYPO3 backend modules while building a Laravel frontend, but this introduces dual-stack complexity.
  • API Layer: Could expose extbase logic via a Laravel API middleware, but this adds latency and coupling.

Technical Risk

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.

Key Questions

  1. Why integrate extbase?
    • Is this for legacy migration, hybrid CMS+API, or specific TYPO3 features (e.g., backend modules)?
  2. What’s the scope?
    • Full rewrite? Partial extraction? API wrapper?
  3. Database Strategy:
    • Will Laravel share TYPO3’s database, or is a separate schema needed?
  4. Team Expertise:
    • Does the team have TYPO3/extbase experience to manage the legacy layer?
  5. License Compliance:
    • How will GPL-2.0 interact with Laravel’s MIT dependencies?
  6. Long-Term Viability:
    • Is extbase being actively maintained? (TYPO3’s roadmap favors TYPO3 CMS 12+, not extbase.)

Integration Approach

Stack Fit

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.

Migration Path

  1. Assessment Phase:
    • Audit extbase usage: Controllers, Repositories, Domain Models, Services.
    • Identify critical vs. non-critical components.
  2. Isolation Strategy:
    • Option A (Recommended): Extract business logic (Services/Domain Models) into Laravel-compatible classes, then deprecate extbase.
    • Option B: Wrap extbase in a Laravel service (e.g., ExtbaseFacade), but this couples tightly.
  3. Database Layer:
    • Use Eloquent models for new development; raw queries or custom repositories for TYPO3 tables.
    • Consider database views to unify schemas.
  4. Routing & Frontend:
    • Replace TYPO3’s plugin-based routing with Laravel’s route model binding.
    • Use Blade for frontend; Fluid only for legacy backend modules.
  5. Backend Integration:
    • If using TYPO3 backend, embed Laravel API endpoints via TYPO3’s extbase hooks or custom middleware.

Compatibility Challenges

  • Autoloading Conflicts:
    • TYPO3 uses class aliasing (\TYPO3\CMS\Extbase\Domain\Model\*); Laravel’s PSR-4 may clash.
    • Solution: Use Composer’s autoload overrides or custom class maps.
  • Session Handling:
    • TYPO3’s $GLOBALS['TYPO3_CONF_VARS'] vs. Laravel’s session driver.
    • Solution: Bridge sessions via a custom service provider.
  • Event System:
    • extbase uses Signal/Slot; Laravel uses Events.
    • Solution: Map extbase signals to Laravel events in a listener.

Sequencing

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.

Operational Impact

Maintenance

  • Short-Term:
    • High overhead due to dual-stack maintenance (Laravel + extbase).
    • Debugging complexity: Stack traces will mix Laravel’s Monolog and TYPO3’s error handling.
  • Long-Term:
    • Technical debt risk: extbase is not Laravel-native; future updates may break compatibility.
    • Team skills gap: Requires both Laravel and TYPO3 expertise.
  • Mitigation:
    • Document integration points (e.g., API contracts, database schemas).
    • Automated tests for extbase-Laravel interactions (e.g., PestPHP).

Support

  • Vendor Lock-in:
    • TYPO3’s GPL-2.0 may restrict Laravel’s MIT-licensed ecosystem.
    • Solution: Isolate extbase in a separate repo (e.g., Git submodule).
  • Community Support:
    • Low Laravel community knowledge of extbase.
    • Solution: Internal runbooks for troubleshooting.
  • Dependency Updates:
    • extbase is stagnant (last major update in 2020).
    • Solution: Fork and maintain if critical
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
craftcms/url-validator
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony