diff --git a/core-bundle/src/DependencyInjection/Attribute/AsCallback.php b/core-bundle/src/DependencyInjection/Attribute/AsCallback.php new file mode 100644 index 00000000000..a59027c3ef8 --- /dev/null +++ b/core-bundle/src/DependencyInjection/Attribute/AsCallback.php @@ -0,0 +1,24 @@ +attributes = $attributes; + } +} diff --git a/core-bundle/src/DependencyInjection/Attribute/AsCronJob.php b/core-bundle/src/DependencyInjection/Attribute/AsCronJob.php new file mode 100644 index 00000000000..329559cbbc1 --- /dev/null +++ b/core-bundle/src/DependencyInjection/Attribute/AsCronJob.php @@ -0,0 +1,24 @@ +attributes = $attributes; + } +} diff --git a/core-bundle/src/DependencyInjection/Attribute/AsHook.php b/core-bundle/src/DependencyInjection/Attribute/AsHook.php new file mode 100644 index 00000000000..9ec4a431454 --- /dev/null +++ b/core-bundle/src/DependencyInjection/Attribute/AsHook.php @@ -0,0 +1,24 @@ +defaults['_locale'] = $locale; + } + + if (null !== $format) { + $this->defaults['_format'] = $format; + } + } +} diff --git a/core-bundle/src/DependencyInjection/Attribute/AsPickerProvider.php b/core-bundle/src/DependencyInjection/Attribute/AsPickerProvider.php new file mode 100644 index 00000000000..6fb76cce914 --- /dev/null +++ b/core-bundle/src/DependencyInjection/Attribute/AsPickerProvider.php @@ -0,0 +1,24 @@ +registerForAutoconfiguration(ContentCompositionInterface::class) ->addTag('contao.page') ; + + $container->registerAttributeForAutoconfiguration( + AsContentElement::class, + static function (ChildDefinition $definition, AsContentElement $attribute): void { + $definition->addTag(ContentElementReference::TAG_NAME, $attribute->attributes); + } + ); + + $container->registerAttributeForAutoconfiguration( + AsFrontendModule::class, + static function (ChildDefinition $definition, AsFrontendModule $attribute): void { + $definition->addTag(FrontendModuleReference::TAG_NAME, $attribute->attributes); + } + ); + + $container->registerAttributeForAutoconfiguration( + AsCronJob::class, + static function (ChildDefinition $definition, AsCronJob $attribute): void { + $definition->addTag('contao.cronjob', get_object_vars($attribute)); + } + ); + + $container->registerAttributeForAutoconfiguration( + AsHook::class, + static function (ChildDefinition $definition, AsHook $attribute): void { + $definition->addTag('contao.hook', get_object_vars($attribute)); + } + ); + + $container->registerAttributeForAutoconfiguration( + AsCallback::class, + static function (ChildDefinition $definition, AsCallback $attribute): void { + $definition->addTag('contao.callback', get_object_vars($attribute)); + } + ); + + $container->registerAttributeForAutoconfiguration( + AsPage::class, + static function (ChildDefinition $definition, AsPage $attribute): void { + $definition->addTag('contao.page', get_object_vars($attribute)); + } + ); + + $container->registerAttributeForAutoconfiguration( + AsPickerProvider::class, + static function (ChildDefinition $definition, AsPickerProvider $attribute): void { + $definition->addTag('contao.picker_provider', get_object_vars($attribute)); + } + ); } private function handleSearchConfig(array $config, ContainerBuilder $container): void