Automattic\WooCommerce\Blocks\Domain

Bootstrap::register_dependencies()protectedWC 1.0

Register core dependencies with the container.

Method of the class: Bootstrap{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->register_dependencies();

Bootstrap::register_dependencies() code WC 8.7.0

protected function register_dependencies() {
	$this->container->register(
		FeatureGating::class,
		function () {
			return new FeatureGating();
		}
	);
	$this->container->register(
		AssetApi::class,
		function ( Container $container ) {
			return new AssetApi( $container->get( Package::class ) );
		}
	);
	$this->container->register(
		AssetDataRegistry::class,
		function( Container $container ) {
			return new AssetDataRegistry( $container->get( AssetApi::class ) );
		}
	);
	$this->container->register(
		AssetsController::class,
		function( Container $container ) {
			return new AssetsController( $container->get( AssetApi::class ) );
		}
	);
	$this->container->register(
		PaymentMethodRegistry::class,
		function() {
			return new PaymentMethodRegistry();
		}
	);
	$this->container->register(
		Installer::class,
		function () {
			return new Installer();
		}
	);
	$this->container->register(
		BlockTypesController::class,
		function ( Container $container ) {
			$asset_api           = $container->get( AssetApi::class );
			$asset_data_registry = $container->get( AssetDataRegistry::class );
			return new BlockTypesController( $asset_api, $asset_data_registry );
		}
	);
	$this->container->register(
		BlockTemplatesController::class,
		function ( Container $container ) {
			return new BlockTemplatesController( $container->get( Package::class ) );
		}
	);
	$this->container->register(
		ProductSearchResultsTemplate::class,
		function () {
			return new ProductSearchResultsTemplate();
		}
	);
	$this->container->register(
		ProductAttributeTemplate::class,
		function () {
			return new ProductAttributeTemplate();
		}
	);
	$this->container->register(
		CartTemplate::class,
		function () {
			return new CartTemplate();
		}
	);
	$this->container->register(
		CheckoutTemplate::class,
		function () {
			return new CheckoutTemplate();
		}
	);
	$this->container->register(
		CheckoutHeaderTemplate::class,
		function () {
			return new CheckoutHeaderTemplate();
		}
	);
	$this->container->register(
		OrderConfirmationTemplate::class,
		function () {
			return new OrderConfirmationTemplate();
		}
	);
	$this->container->register(
		ClassicTemplatesCompatibility::class,
		function ( Container $container ) {
			$asset_data_registry = $container->get( AssetDataRegistry::class );
			return new ClassicTemplatesCompatibility( $asset_data_registry );
		}
	);
	$this->container->register(
		ArchiveProductTemplatesCompatibility::class,
		function () {
			return new ArchiveProductTemplatesCompatibility();
		}
	);

	$this->container->register(
		SingleProductTemplateCompatibility::class,
		function () {
			return new SingleProductTemplateCompatibility();
		}
	);
	$this->container->register(
		DraftOrders::class,
		function( Container $container ) {
			return new DraftOrders( $container->get( Package::class ) );
		}
	);
	$this->container->register(
		CreateAccount::class,
		function( Container $container ) {
			return new CreateAccount( $container->get( Package::class ) );
		}
	);
	$this->container->register(
		GoogleAnalytics::class,
		function( Container $container ) {
			$asset_api = $container->get( AssetApi::class );
			return new GoogleAnalytics( $asset_api );
		}
	);
	$this->container->register(
		Notices::class,
		function( Container $container ) {
			return new Notices( $container->get( Package::class ) );
		}
	);
	$this->container->register(
		Hydration::class,
		function( Container $container ) {
			return new Hydration( $container->get( AssetDataRegistry::class ) );
		}
	);
	$this->container->register(
		CheckoutFields::class,
		function( Container $container ) {
			return new CheckoutFields( $container->get( AssetDataRegistry::class ) );
		}
	);
	$this->container->register(
		CheckoutFieldsAdmin::class,
		function( Container $container ) {
			$checkout_fields_controller = $container->get( CheckoutFields::class );
			return new CheckoutFieldsAdmin( $checkout_fields_controller );
		}
	);
	$this->container->register(
		CheckoutFieldsFrontend::class,
		function( Container $container ) {
			$checkout_fields_controller = $container->get( CheckoutFields::class );
			return new CheckoutFieldsFrontend( $checkout_fields_controller );
		}
	);
	$this->container->register(
		PaymentsApi::class,
		function ( Container $container ) {
			$payment_method_registry = $container->get( PaymentMethodRegistry::class );
			$asset_data_registry     = $container->get( AssetDataRegistry::class );
			return new PaymentsApi( $payment_method_registry, $asset_data_registry );
		}
	);
	$this->container->register(
		StoreApi::class,
		function () {
			return new StoreApi();
		}
	);
	// Maintains backwards compatibility with previous Store API namespace.
	$this->container->register(
		'Automattic\WooCommerce\Blocks\StoreApi\Formatters',
		function( Container $container ) {
			$this->deprecated_dependency( 'Automattic\WooCommerce\Blocks\StoreApi\Formatters', '7.2.0', 'Automattic\WooCommerce\StoreApi\Formatters', '7.4.0' );
			return $container->get( StoreApi::class )->container()->get( \Automattic\WooCommerce\StoreApi\Formatters::class );
		}
	);
	$this->container->register(
		'Automattic\WooCommerce\Blocks\Domain\Services\ExtendRestApi',
		function( Container $container ) {
			$this->deprecated_dependency( 'Automattic\WooCommerce\Blocks\Domain\Services\ExtendRestApi', '7.2.0', 'Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema', '7.4.0' );
			return $container->get( StoreApi::class )->container()->get( \Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema::class );
		}
	);
	$this->container->register(
		'Automattic\WooCommerce\Blocks\StoreApi\SchemaController',
		function( Container $container ) {
			$this->deprecated_dependency( 'Automattic\WooCommerce\Blocks\StoreApi\SchemaController', '7.2.0', 'Automattic\WooCommerce\StoreApi\SchemaController', '7.4.0' );
			return $container->get( StoreApi::class )->container()->get( SchemaController::class );
		}
	);
	$this->container->register(
		'Automattic\WooCommerce\Blocks\StoreApi\RoutesController',
		function( Container $container ) {
			$this->deprecated_dependency( 'Automattic\WooCommerce\Blocks\StoreApi\RoutesController', '7.2.0', 'Automattic\WooCommerce\StoreApi\RoutesController', '7.4.0' );
			return $container->get( StoreApi::class )->container()->get( RoutesController::class );
		}
	);
	$this->container->register(
		BlockPatterns::class,
		function () {
			return new BlockPatterns( $this->package );
		}
	);
	$this->container->register(
		ShippingController::class,
		function ( $container ) {
			$asset_api           = $container->get( AssetApi::class );
			$asset_data_registry = $container->get( AssetDataRegistry::class );
			return new ShippingController( $asset_api, $asset_data_registry );
		}
	);
	$this->container->register(
		TasksController::class,
		function() {
			return new TasksController();
		}
	);
	$this->container->register(
		QueryFilters::class,
		function() {
			return new QueryFilters();
		}
	);
}