ibutesLookupServiceProvider::class, ProductDownloadsServiceProvider::class, ProductImageBySKUServiceProvider::class, ProductReviewsServiceProvider::class, ProxiesServiceProvider::class, RestockRefundedItemsAdjusterServiceProvider::class, UtilsClassesServiceProvider::class, COTMigrationServiceProvider::class, OrdersControllersServiceProvider::class, OrderAttributionServiceProvider::class, ObjectCacheServiceProvider::class, BatchProcessingServiceProvider::class, OrderMetaBoxServiceProvider::class, OrderAdminServiceProvider::class, FeaturesServiceProvider::class, MarketingServiceProvider::class, MarketplaceServiceProvider::class, BlockTemplatesServiceProvider::class, LoggingServiceProvider::class, ); /** * The underlying container. * * @var \League\Container\Container */ private $container; /** * Class constructor. */ public function __construct() { $this->container = new ExtendedContainer(); // Add ourselves as the shared instance of ContainerInterface, // register everything else using service providers. $this->container->share( __CLASS__, $this ); foreach ( $this->service_providers as $service_provider_class ) { $this->container->addServiceProvider( $service_provider_class ); } } /** * Finds an entry of the container by its identifier and returns it. * * @param string $id Identifier of the entry to look for. * * @throws NotFoundExceptionInterface No entry was found for **this** identifier. * @throws Psr\Container\ContainerExceptionInterface Error while retrieving the entry. * * @return mixed Entry. */ public function get( string $id ) { return $this->container->get( $id ); } /** * Returns true if the container can return an entry for the given identifier. * Returns false otherwise. * * `has($id)` returning true does not mean that `get($id)` will not throw an exception. * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`. * * @param string $id Identifier of the entry to look for. * * @return bool */ public function has( string $id ): bool { return $this->container->has( $id ); } }