get( NewPackage::class ); } /** * Init the package - load the blocks library and define constants. * * @since 2.5.0 Handled by new NewPackage. */ public static function init() { self::container()->get( Bootstrap::class ); } /** * Return the version of the package. * * @return string */ public static function get_version() { return self::get_package()->get_version(); } /** * Return the path to the package. * * @return string */ public static function get_path() { return self::get_package()->get_path(); } /** * Returns an instance of the the FeatureGating class. * * @return FeatureGating */ public static function feature() { return self::get_package()->feature(); } /** * Checks if we're executing the code in an experimental build mode. * * @return boolean */ public static function is_experimental_build() { return self::get_package()->is_experimental_build(); } /** * Checks if we're executing the code in an feature plugin or experimental build mode. * * @return boolean */ public static function is_feature_plugin_build() { return self::get_package()->is_feature_plugin_build(); } /** * Loads the dependency injection container for woocommerce blocks. * * @param boolean $reset Used to reset the container to a fresh instance. * Note: this means all dependencies will be * reconstructed. */ public static function container( $reset = false ) { static $container; if ( ! $container instanceof Container || $reset ) { $container = new Container(); // register Package. $container->register( NewPackage::class, function ( $container ) { // leave for automated version bumping. $version = '6.1.0'; return new NewPackage( $version, dirname( __DIR__ ), new FeatureGating() ); } ); // register Bootstrap. $container->register( Bootstrap::class, function ( $container ) { return new Bootstrap( $container ); } ); } return $container; } }