$modules Registered modules list. */ do_action( 'abct_core_booted', self::$container, self::$modules ); } /** * Build container. * * @return ABCT_Core_Container */ private static function build_container() { return new ABCT_Core_Container(); } /** * Build module instances. * * @param ABCT_Core_Container $container Container. * @return ABCT_Module_Interface[] */ private static function build_modules( ABCT_Core_Container $container ) { $modules = array( new ABCT_Scheduling_Module( $container ), new ABCT_Menu_Module( $container ), ); /** * Filter core module instances before registration. * * @param array $modules Module instances. * @param ABCT_Core_Container $container Service container. */ $modules = apply_filters( 'abct_core_modules', $modules, $container ); return is_array( $modules ) ? $modules : array(); } /** * Register modules with fault isolation. * * @return void */ private static function register_modules() { foreach ( self::$modules as $module ) { if ( ! $module instanceof ABCT_Module_Interface ) { continue; } try { $module->register(); } catch ( Throwable $e ) { error_log( '[ABCT Smart Orders] Module register failure: ' . get_class( $module ) . ' - ' . $e->getMessage() ); } } } }