You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Collecting the structural items in one issue. Most of it is already known (the XML loader deprecation is noted in the extension) and tied to Symfony 8 support.
AbstractBundle and PHP service config. XML DI configuration is deprecated in Symfony 7.4 and removed in 8.0. Moving to Symfony\Component\HttpKernel\Bundle\AbstractBundle with configure(DefinitionConfigurator $definition), loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder) and config/services.php removes the separate Extension/Configuration classes and the Resources/ directory. AbstractBundle expects the modern layout (config/ at the bundle root), so this pairs with moving src/Resources/config to config/.
Exception types.SetonoMetaConversionsApiExtension::load() uses Webmozart\Assert\Assert::true()/keyExists() (src/DependencyInjection/SetonoMetaConversionsApiExtension.php:39-44), which throw InvalidArgumentException. Symfony convention for "bundle X must be registered" is \LogicException, and configuration errors should be InvalidConfigurationException. The current integration test even asserts on \InvalidArgumentException. With AbstractBundle the check becomes $builder->hasExtension('setono_tag_bag') inside loadExtension().
Configuration::isTagBagBundleInstalled() (src/DependencyInjection/Configuration.php:38) makes the configuration schema depend on installed packages, so config:dump-reference differs between installations. Reasonable trade-off, but state it in the README next to the client_side.enabled default. The same InstalledVersions::satisfies() check is duplicated in the extension; keep one.
Composer constraints.symfony/event-dispatcher-contracts: ^2.5 || ^3.0: 2.x pairs with Symfony 5.4, which is no longer supported; ^3.0 is enough. symfony/messenger is required even for client-side-only installations; consider moving it to suggest with a compile-time check when server_side is enabled.
Collecting the structural items in one issue. Most of it is already known (the XML loader deprecation is noted in the extension) and tied to Symfony 8 support.
AbstractBundleand PHP service config. XML DI configuration is deprecated in Symfony 7.4 and removed in 8.0. Moving toSymfony\Component\HttpKernel\Bundle\AbstractBundlewithconfigure(DefinitionConfigurator $definition),loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder)andconfig/services.phpremoves the separateExtension/Configurationclasses and theResources/directory.AbstractBundleexpects the modern layout (config/at the bundle root), so this pairs with movingsrc/Resources/configtoconfig/.SetonoMetaConversionsApiExtension::load()usesWebmozart\Assert\Assert::true()/keyExists()(src/DependencyInjection/SetonoMetaConversionsApiExtension.php:39-44), which throwInvalidArgumentException. Symfony convention for "bundle X must be registered" is\LogicException, and configuration errors should beInvalidConfigurationException. The current integration test even asserts on\InvalidArgumentException. WithAbstractBundlethe check becomes$builder->hasExtension('setono_tag_bag')insideloadExtension().Configuration::isTagBagBundleInstalled()(src/DependencyInjection/Configuration.php:38) makes the configuration schema depend on installed packages, soconfig:dump-referencediffers between installations. Reasonable trade-off, but state it in the README next to theclient_side.enableddefault. The sameInstalledVersions::satisfies()check is duplicated in the extension; keep one.symfony/event-dispatcher-contracts: ^2.5 || ^3.0: 2.x pairs with Symfony 5.4, which is no longer supported;^3.0is enough.symfony/messengeris required even for client-side-only installations; consider moving it tosuggestwith a compile-time check whenserver_sideis enabled.prepend()should go away entirely (prepend() replaces the application's default Messenger bus #12).