: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* @var ET_Core_Data_Utils
* The first extension to enable debug mode for itself. Only one Divi Extension can be in
protected static $_debugging_extension;
* All current Divi Extension instances
* @type DiviExtension $name Instance
private static $_extensions;
* Register a Divi Extension instance.
* @param DiviExtension $instance
public static function add( $instance ) {
if ( ! isset( self::$_extensions[ $instance->name ] ) ) {
self::$_extensions[ $instance->name ] = $instance;
et_error( "A Divi Extension named {$instance->name} already exists!" );
* Get one or all Divi Extension instances.
* @param string $name The extension name. Default: 'all'.
* @return DiviExtension|DiviExtension[]|null
public static function get( $name = 'all' ) {
return self::$_extensions;
return self::$_->array_get( self::$_extensions, $name, null );
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.
do_action( 'divi_extensions_init' );
* Whether or not a Divi Extension is in debug mode.
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.
* @param DiviExtension $instance
* @return bool Whether or not request was successful
public static function register_debug_mode( $instance ) {
if ( ! self::$_debugging_extension ) {
self::$_debugging_extension = $instance;
DiviExtensions::initialize();