hasDefinition( Loader::class ) ) { return; } $loader_definition = $container->getDefinition( Loader::class ); $loader_definition->setArgument( 0, new Reference( 'service_container' ) ); $loader_definition->setPublic( true ); $definitions = $container->getDefinitions(); foreach ( $definitions as $definition ) { $this->process_definition( $definition, $loader_definition ); } } /** * Processes a definition in the container. * * @param \Symfony\Component\DependencyInjection\Definition $definition The definition to process. * @param \Symfony\Component\DependencyInjection\Definition $loader_definition The loader definition. */ private function process_definition( Definition $definition, Definition $loader_definition ) { $class = $definition->getClass(); if ( \is_subclass_of( $class, Initializer::class ) ) { $loader_definition->addMethodCall( 'register_initializer', [ $class ] ); $definition->setPublic( true ); } if ( \is_subclass_of( $class, Integration::class ) ) { $loader_definition->addMethodCall( 'register_integration', [ $class ] ); $definition->setPublic( true ); } if ( \is_subclass_of( $class, Conditional::class ) ) { $definition->setPublic( true ); } } }