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 Core Laravel Package

typo3/cms-core

TYPO3 CMS Core provides the essential framework, APIs, and services for the TYPO3 content management system. It powers backend and frontend rendering, extensions, security, caching, routing, and site configuration for building and maintaining TYPO3-based websites.

View on GitHub
Deep Wiki
Context7

Getting Started

This package is a read-only subtree split of TYPO3 CMS Core (typo3/cms-core)—not a standalone library, but the foundational layer of the TYPO3 CMS ecosystem. You’ll interact with it indirectly when setting up or extending TYPO3 projects. Start by installing a full TYPO3 distribution (e.g., via composer create-project typo3/cms-base-distribution my-site), which pulls typo3/cms-core as a required dependency. For day-to-day work, you’ll typically extend TYPO3 using core APIs (e.g., TYPO3\CMS\Core\Utility\* classes), rather than direct typo3/cms-core development. First stop: review the TYPO3 Core API docs, especially chapters on the Extension System, DataHandler (t3lib_divGeneralUtility), and PSR-7 middleware.

Implementation Patterns

  • Middleware Integration: TYPO3’s HTTP kernel is PSR-15/19-compatible. Write custom middleware (implementing Psr\Http\Server\MiddlewareInterface) and register it in Configuration/RequestMiddlewares.php.
  • Signal/Slot & Event Listeners: Leverage TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(EventDispatcherInterface::class) or PSR-14 event subscribers (e.g., listen to PageResolverAfterPagesOverlayResolvedEvent).
  • Configuration Overriding: Use Configuration/TCA/Overrides/ and Configuration/Extbase/Persistence/ files to extend/modify core behavior—without forking core.
  • CLI Commands: Extend TYPO3’s CLI via bin/typo3 by registering console commands (e.g., typo3/cms-core includes bin/typo3 database:upgrade). Implement custom commands in your extension under Classes/Command/.
  • Database Abstraction: Use Doctrine DBAL via $GLOBALS['TYPO3_DBAL_CONNECTION'] or ConnectionPool (via GeneralUtility::makeInstance(ConnectionPool::class)) for schema and query operations.

Gotchas and Tips

  • Subtree Split Limitations: This package is exclusively updated via TYPO3’s release pipeline. Do not require it directly in your composer.json—use typo3/cms-* meta packages or full distributions instead. Direct dependency leads to version conflicts or missing dependencies.
  • Class Aliasing System: TYPO3 uses typo3/class-alias-loader to maintain backward compatibility. use statements often reference legacy namespaces (e.g., t3lib_divTYPO3\CMS\Core\Utility\GeneralUtility). Always consult the class alias map when upgrading TYPO3.
  • PSR-11 Container Injection: Avoid static GeneralUtility::makeInstance() for complex services in new code—prefer constructor injection via PSR-11 ContainerInterface. The core bootstraps a fully-configured container (TYPO3\CMS\Core\DependencyInjection\ContainerBuilder).
  • Strict PHP 8.2+ Compliance: Core demands PHP 8.2+, with strong typing. Enable declare(strict_types=1); in your extensions. Missing union types or nullable hints in your code may break on TYPO3’s strict type checks.
  • Testing Isolation: Core tests run in isolated processes using typo3/cms-core/Build/Scripts/resolveDependencies.php. For your own tests, bootstrap TYPO3 via TYPO3\CMS\Core\Tests\FunctionalTestCase and use the Fixture trait for test DB setups.
  • Localization Pitfalls: Translations use XLIFF with locallang.xlf. Ensure xlf files match your extension key, and use LocalizationUtility::translate() (not raw LLL: references) in Fluid or PHP.
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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport