> */ protected function get_controllers(): array { return [ [ Blocks_Controller::class ], [ Block_Templates_Controller::class ], [ Integrations_Provider::class ], [ Installer_Provider::class ], [ Site_Health_Provider::class ], [ Telemetry_Provider::class ], [ Notifications_Provider::class ], [ 'on_action' => 'tec_qr_code_loaded', QR_Controller::class, ], [ SEO_Controller::class ], [ SEO_Headers_Controller::class ], [ Admin_Notice_Provider::class ], [ Admin_Settings_Provider::class ], [ Admin_Onboarding_Controller::class ], [ Admin_Help_Hub_Provider::class ], [ Category_Colors_Controller::class ], [ Calendar_Embeds_Controller::class ], [ REST_Controller::class ], ]; } /** * Registers the filters and actions hooks added by the controller. * * @since * * @return void */ protected function do_register(): void { // Custom tables v1 implementation. if ( class_exists( Custom_Tables_V1_Provider::class ) ) { $this->container->register_on_action( 'tribe_common_loaded', Custom_Tables_V1_Provider::class ); } foreach ( $this->get_controllers() as $controller ) { if ( ! is_array( $controller ) ) { continue; } if ( isset( $controller['on_action'] ) ) { $action = $controller['on_action']; unset( $controller['on_action'] ); $this->container->register_on_action( $action, ...$controller ); continue; } $this->container->register( ...$controller ); } } /** * Unregisters the filters and actions hooks added by the controller. * * @since 6.15.0 * * @return void Filters and actions hooks added by the controller are be removed. */ public function unregister(): void { foreach ( $this->get_controllers() as $controller ) { if ( ! is_array( $controller ) ) { continue; } unset( $controller['on_action'] ); $controller = array_values( $controller ); if ( ! $this->container->isBound( $controller[0] ) ) { continue; } $controller = $this->container->get( $controller[0] ); if ( ! $controller instanceof Controller_Contract ) { continue; } $controller->unregister(); } } }