TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:15 +02:00
commit 6830982e7d
295 changed files with 31995 additions and 0 deletions
@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
return [
\TYPO3\CMS\Extbase\Domain\Model\FileReference::class => [
'tableName' => 'sys_file_reference',
],
\TYPO3\CMS\Extbase\Domain\Model\File::class => [
'tableName' => 'sys_file',
],
\TYPO3\CMS\Extbase\Domain\Model\Category::class => [
'tableName' => 'sys_category',
],
];
+34
View File
@@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
namespace TYPO3\CMS\Extbase;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use TYPO3\CMS\Core\DependencyInjection\PublicServicePass;
use TYPO3\CMS\Extbase\DependencyInjection\TypeConverterPass;
return static function (ContainerConfigurator $containerConfigurator, ContainerBuilder $container) {
$container->registerForAutoconfiguration(Mvc\Controller\ControllerInterface::class)->addTag('extbase.controller');
$container->registerForAutoconfiguration(Mvc\Controller\ActionController::class)->addTag('extbase.action_controller');
$container->registerForAutoconfiguration(Validation\Validator\ValidatorInterface::class)->addTag('extbase.validator');
$container->addCompilerPass(new PublicServicePass('extbase.validator', true));
$container->addCompilerPass(new class implements CompilerPassInterface {
public function process(ContainerBuilder $container): void
{
foreach ($container->findTaggedServiceIds('extbase.controller') as $id => $tags) {
$container->findDefinition($id)->setPublic(true);
}
foreach ($container->findTaggedServiceIds('extbase.action_controller') as $id => $tags) {
$container->findDefinition($id)->setShared(false);
}
}
});
$container->addCompilerPass(new TypeConverterPass('extbase.type_converter'));
$container->addCompilerPass(new DependencyInjection\RateLimitPass('extbase.action_controller'));
$container->addCompilerPass(new DependencyInjection\AuthorizePass('extbase.action_controller'));
};
+161
View File
@@ -0,0 +1,161 @@
services:
_defaults:
autowire: true
autoconfigure: true
public: false
TYPO3\CMS\Extbase\:
resource: '../Classes/*'
# formerly in EXT:extbase/ext_localconf.php
TYPO3\CMS\Extbase\Persistence\QueryInterface:
alias: TYPO3\CMS\Extbase\Persistence\Generic\Query
public: true
TYPO3\CMS\Extbase\Persistence\QueryResultInterface:
alias: TYPO3\CMS\Extbase\Persistence\Generic\QueryResult
public: true
TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface:
alias: TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
public: true
TYPO3\CMS\Extbase\Persistence\Generic\Storage\BackendInterface:
alias: TYPO3\CMS\Extbase\Persistence\Generic\Storage\Typo3DbBackend
TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface:
alias: TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings
public: true
TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface:
alias: TYPO3\CMS\Extbase\Configuration\ConfigurationManager
public: true
cache.extbase:
class: TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
factory: ['@TYPO3\CMS\Core\Cache\CacheManager', 'getCache']
arguments: ['extbase']
TYPO3\CMS\Extbase\Persistence\ClassesConfiguration:
factory: ['@TYPO3\CMS\Extbase\Persistence\ClassesConfigurationFactory', 'createClassesConfiguration']
# Content Object for Extbase Plugins
TYPO3\CMS\Extbase\ContentObject\ExtbasePluginContentObject:
tags:
- name: frontend.contentobject
identifier: 'EXTBASEPLUGIN'
# Type Converters
TYPO3\CMS\Extbase\Property\TypeConverter\ArrayConverter:
tags:
- name: extbase.type_converter
priority: 10
target: array
sources: array,string
TYPO3\CMS\Extbase\Property\TypeConverter\BooleanConverter:
tags:
- name: extbase.type_converter
priority: 10
target: boolean
sources: boolean,string
TYPO3\CMS\Extbase\Property\TypeConverter\DateTimeConverter:
tags:
- name: extbase.type_converter
priority: 10
target: DateTime
sources: string,integer,array
TYPO3\CMS\Extbase\Property\TypeConverter\EnumConverter:
tags:
- name: extbase.type_converter
priority: 20
target: object
sources: string,integer,float
TYPO3\CMS\Extbase\Property\TypeConverter\FloatConverter:
tags:
- name: extbase.type_converter
priority: 10
target: float
sources: float, integer, string
TYPO3\CMS\Extbase\Property\TypeConverter\IntegerConverter:
tags:
- name: extbase.type_converter
priority: 10
target: integer
sources: integer, string
TYPO3\CMS\Extbase\Property\TypeConverter\ObjectStorageConverter:
tags:
- name: extbase.type_converter
priority: 10
target: TYPO3\CMS\Extbase\Persistence\ObjectStorage
sources: string, array
TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter:
tags:
- name: extbase.type_converter
priority: 20
target: TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject
sources: integer, string, array
TYPO3\CMS\Extbase\Property\TypeConverter\ObjectConverter:
tags:
- name: extbase.type_converter
priority: 10
target: object
sources: array
TYPO3\CMS\Extbase\Property\TypeConverter\StringConverter:
tags:
- name: extbase.type_converter
priority: 10
target: string
sources: string, integer
TYPO3\CMS\Extbase\Property\TypeConverter\CoreTypeConverter:
tags:
- name: extbase.type_converter
priority: 10
target: TYPO3\CMS\Core\Type\TypeInterface
sources: string, integer, float, boolean, array
TYPO3\CMS\Extbase\Property\TypeConverter\CountryConverter:
tags:
- name: extbase.type_converter
priority: 10
target: TYPO3\CMS\Core\Country\Country
sources: string
# Experimental FAL<->extbase converter
TYPO3\CMS\Extbase\Property\TypeConverter\FileConverter:
tags:
- name: extbase.type_converter
priority: 10
target: TYPO3\CMS\Extbase\Domain\Model\File
sources: integer, string
# Experimental FAL<->extbase converter
TYPO3\CMS\Extbase\Property\TypeConverter\FileReferenceConverter:
tags:
- name: extbase.type_converter
priority: 10
target: TYPO3\CMS\Extbase\Domain\Model\FileReference
sources: integer
# Experimental FAL<->extbase converter
TYPO3\CMS\Extbase\Property\TypeConverter\FolderConverter:
tags:
- name: extbase.type_converter
priority: 10
target: TYPO3\CMS\Extbase\Domain\Model\Folder
sources: string
Doctrine\Instantiator\InstantiatorInterface:
class: \Doctrine\Instantiator\Instantiator
# Configuration module to inspect Extbase Class Configuration
extbase.configuration.module.provider.classConfiguration:
class: 'TYPO3\CMS\Extbase\ConfigurationModuleProvider\ClassConfigurationProvider'
tags:
- name: 'lowlevel.configuration.module.provider'
identifier: 'extbaseClassConfiguration'
label: 'extbase.messages:class_configuration'
+33
View File
@@ -0,0 +1,33 @@
<?php
defined('TYPO3') or die();
if (!isset($GLOBALS['TCA']['fe_users']['ctrl']['type'])) {
$tca = [
'ctrl' => [
'type' => 'tx_extbase_type',
],
'columns' => [
'tx_extbase_type' => [
'exclude' => true,
'label' => 'LLL:EXT:extbase/Resources/Private/Language/locallang_db.xlf:fe_users.tx_extbase_type',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['label' => 'LLL:EXT:extbase/Resources/Private/Language/locallang_db.xlf:fe_users.tx_extbase_type.0', 'value' => '0'],
['label' => 'LLL:EXT:extbase/Resources/Private/Language/locallang_db.xlf:fe_users.tx_extbase_type.Tx_Extbase_Domain_Model_FrontendUser', 'value' => 'Tx_Extbase_Domain_Model_FrontendUser'],
],
'default' => 0,
],
],
],
'types' => [
'Tx_Extbase_Domain_Model_FrontendUser' => $GLOBALS['TCA']['fe_users']['types']['0'],
],
];
$GLOBALS['TCA']['fe_users'] = array_replace_recursive($GLOBALS['TCA']['fe_users'], $tca);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('fe_users', 'tx_extbase_type');
} else {
$GLOBALS['TCA']['fe_users']['types']['Tx_Extbase_Domain_Model_FrontendUser'] = $GLOBALS['TCA']['fe_users']['types']['0'];
}