name ] ) ) { self::$_extensions[ $instance->name ] = $instance; } else { et_error( "A Divi Extension named {$instance->name} already exists!" ); } } /** * Get one or all Divi Extension instances. * * @since 3.1 * * @param string $name The extension name. Default: 'all'. * * @return DiviExtension|DiviExtension[]|null */ public static function get( $name = 'all' ) { if ( 'all' === $name ) { return self::$_extensions; } return self::$_->array_get( self::$_extensions, $name, null ); } /** * Initialize the base `DiviExtension` class. */ public static function initialize() { self::$_ = ET_Core_Data_Utils::instance(); require_once ET_BUILDER_DIR . 'api/DiviExtension.php'; /** * Fires when the {@see DiviExtension} base class is available. * * @since 3.1 */ do_action( 'divi_extensions_init' ); } /** * Whether or not a Divi Extension is in debug mode. * * @since 3.1 * * @return bool */ public static function is_debugging_extension() { return ! is_null( self::$_debugging_extension ); } /** * Register's an extension instance for debug mode if one hasn't already been registered. * * @since 3.1 * * @param DiviExtension $instance Instance. * * @return bool Whether or not request was successful */ public static function register_debug_mode( $instance ) { if ( ! self::$_debugging_extension ) { self::$_debugging_extension = $instance; return true; } return false; } } DiviExtensions::initialize();