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.
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_div → GeneralUtility), and PSR-7 middleware.
Psr\Http\Server\MiddlewareInterface) and register it in Configuration/RequestMiddlewares.php.TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(EventDispatcherInterface::class) or PSR-14 event subscribers (e.g., listen to PageResolverAfterPagesOverlayResolvedEvent).Configuration/TCA/Overrides/ and Configuration/Extbase/Persistence/ files to extend/modify core behavior—without forking core.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/.$GLOBALS['TYPO3_DBAL_CONNECTION'] or ConnectionPool (via GeneralUtility::makeInstance(ConnectionPool::class)) for schema and query operations.composer.json—use typo3/cms-* meta packages or full distributions instead. Direct dependency leads to version conflicts or missing dependencies.typo3/class-alias-loader to maintain backward compatibility. use statements often reference legacy namespaces (e.g., t3lib_div → TYPO3\CMS\Core\Utility\GeneralUtility). Always consult the class alias map when upgrading TYPO3.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).declare(strict_types=1); in your extensions. Missing union types or nullable hints in your code may break on TYPO3’s strict type checks.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.locallang.xlf. Ensure xlf files match your extension key, and use LocalizationUtility::translate() (not raw LLL: references) in Fluid or PHP.How can I help you explore Laravel packages today?