provides, true ); } /** * Registers the classes in the container * * @return void */ public function register(): void { $factories = []; $factory_array = [ $this->getContainer()->get( 'atf_factory' ), $this->getContainer()->get( 'lrc_factory' ), ]; foreach ( $factory_array as $factory ) { if ( ! $factory->get_context()->is_allowed() ) { continue; } $factories[] = $factory; } $this->getContainer()->addShared( 'ajax_processor', AjaxProcessor::class ) ->addArguments( [ $factories, ] ); $this->getContainer()->addShared( 'performance_hints_ajax_subscriber', AjaxSubscriber::class ) ->addArgument( 'ajax_processor' ); $this->getContainer()->add( 'frontend_processor', FrontendProcessor::class ) ->addArguments( [ $factories, 'options', ] ); $this->getContainer()->add( 'config', Config::class ) ->addArgument( new ArrayArgument( [ 'config_dir_path' => rocket_get_constant( 'WP_ROCKET_CONFIG_PATH', '' ), ] ) ); $this->getContainer()->add( 'tests', Tests::class ) ->addArgument( 'config' ); $this->getContainer()->addShared( 'performance_hints_frontend_subscriber', FrontendSubscriber::class ) ->addArguments( [ 'frontend_processor', 'tests', ] ); $this->getContainer()->add( 'performance_hints_admin_controller', AdminController::class ) ->addArguments( [ $factory_array, ] ); $this->getContainer()->add( 'performance_hints_notices', Notices::class ) ->addArguments( [ $factories, ] ); $this->getContainer()->add( 'performance_hints_admin_bar', Adminbar::class ) ->addArguments( [ $factories, new StringArgument( $this->getContainer()->get( 'template_path' ) . '/settings' ), ] ); $this->getContainer()->add( 'performance_hints_clean', Clean::class ); $this->getContainer()->addShared( 'performance_hints_admin_subscriber', AdminSubscriber::class ) ->addArguments( [ 'performance_hints_admin_controller', 'performance_hints_admin_bar', 'performance_hints_clean', 'performance_hints_notices', ] ); $this->getContainer()->add( 'cron_controller', CronController::class ) ->addArgument( $factory_array ); $this->getContainer()->addShared( 'performance_hints_cron_subscriber', CronSubscriber::class ) ->addArgument( 'cron_controller' ); $this->getContainer()->add( 'performance_hints_warmup_apiclient', APIClient::class ) ->addArgument( 'options' ); $this->getContainer()->add( 'performance_hints_warmup_queue', Queue::class ); $this->getContainer()->add( 'performance_hints_warmup_controller', WarmUpController::class ) ->addArguments( [ $factories, 'options', 'performance_hints_warmup_apiclient', 'user', 'performance_hints_warmup_queue', ] ); $this->getContainer()->addShared( 'performance_hints_warmup_subscriber', WarmUpSubscriber::class ) ->addArgument( 'performance_hints_warmup_controller' ); } }