singleton( FormSettingsValidator::class, function () { return new FormSettingsValidator(); } ); // Register service as singleton $container->singleton( FormSettingsService::class, function ( Container $c ) { return new FormSettingsService( $c->get( LoggerInterface::class ), FormIntegrationRegistry::getInstance(), $c->get( FormSettingsValidator::class ) ); } ); // Register controller as singleton $container->singleton( FormSettingsController::class, function ( Container $c ) { return new FormSettingsController( $c->get( LoggerInterface::class ), $c->get( FormSettingsService::class ), $c->get( FormSettingsValidator::class ) ); } ); } /** * Boot services. * * @param Container $container The DI container. * * @return void */ public function boot( Container $container ): void { // Register AJAX actions $controller = $container->get( FormSettingsController::class ); $controller->registerActions(); // The forms admin screen is the React SPA (AdminPageController), which // consumes this controller's REST routes. } }