MailPoet\EmailEditor

EmailEditorContainer::container()public staticWC 1.0

Loads the DI container for the Email editor.

Method of the class: EmailEditorContainer{}

No Hooks.

Return

Mixed.

Usage

$result = EmailEditorContainer::container( $reset );
$reset(true|false)
Used to reset the container to a fresh instance. Note: this means all dependencies will be reconstructed.
Default: false

EmailEditorContainer::container() code WC 9.8.1

public static function container( $reset = false ) {
	static $container;

	if ( $reset ) {
		$container = null;
	}

	if ( $container ) {
		return $container;
	}

	$container = new Container();

	// Start: MailPoet plugin dependencies.
	$container->register(
		Initializer::class,
		function () {
			return new Initializer();
		}
	);
	// End: MailPoet plugin dependencies.
	// Start: Email editor dependencies.
	$container->register(
		Theme_Controller::class,
		function () {
			return new Theme_Controller();
		}
	);
	$container->register(
		User_Theme::class,
		function () {
			return new User_Theme();
		}
	);
	$container->register(
		Settings_Controller::class,
		function ( $container ) {
			return new Settings_Controller( $container->get( Theme_Controller::class ) );
		}
	);
	$container->register(
		Settings_Controller::class,
		function ( $container ) {
			return new Settings_Controller( $container->get( Theme_Controller::class ) );
		}
	);
	$container->register(
		Templates_Registry::class,
		function () {
			return new Templates_Registry();
		}
	);
	$container->register(
		Templates::class,
		function ( $container ) {
			return new Templates( $container->get( Templates_Registry::class ) );
		}
	);
	$container->register(
		Patterns::class,
		function () {
			return new Patterns();
		}
	);
	$container->register(
		Cleanup_Preprocessor::class,
		function () {
			return new Cleanup_Preprocessor();
		}
	);
	$container->register(
		Blocks_Width_Preprocessor::class,
		function () {
			return new Blocks_Width_Preprocessor();
		}
	);
	$container->register(
		Typography_Preprocessor::class,
		function ( $container ) {
			return new Typography_Preprocessor( $container->get( Settings_Controller::class ) );
		}
	);
	$container->register(
		Spacing_Preprocessor::class,
		function () {
			return new Spacing_Preprocessor();
		}
	);
	$container->register(
		Highlighting_Postprocessor::class,
		function () {
			return new Highlighting_Postprocessor();
		}
	);
	$container->register(
		Variables_Postprocessor::class,
		function ( $container ) {
			return new Variables_Postprocessor( $container->get( Theme_Controller::class ) );
		}
	);
	$container->register(
		Process_Manager::class,
		function ( $container ) {
			return new Process_Manager(
				$container->get( Cleanup_Preprocessor::class ),
				$container->get( Blocks_Width_Preprocessor::class ),
				$container->get( Typography_Preprocessor::class ),
				$container->get( Spacing_Preprocessor::class ),
				$container->get( Highlighting_Postprocessor::class ),
				$container->get( Variables_Postprocessor::class ),
			);
		}
	);
	$container->register(
		Blocks_Registry::class,
		function () {
			return new Blocks_Registry();
		}
	);
	$container->register(
		Content_Renderer::class,
		function ( $container ) {
			return new Content_Renderer(
				$container->get( Process_Manager::class ),
				$container->get( Blocks_Registry::class ),
				$container->get( Settings_Controller::class ),
				new EmailCssInliner(),
				$container->get( Theme_Controller::class ),
			);
		}
	);
	$container->register(
		Renderer::class,
		function ( $container ) {
			return new Renderer(
				$container->get( Content_Renderer::class ),
				$container->get( Templates::class ),
				new EmailCssInliner(),
				$container->get( Theme_Controller::class ),
			);
		}
	);
	$container->register(
		Personalization_Tags_Registry::class,
		function () {
			return new Personalization_Tags_Registry();
		}
	);
	$container->register(
		Personalizer::class,
		function ( $container ) {
			return new Personalizer(
				$container->get( Personalization_Tags_Registry::class ),
			);
		}
	);
	$container->register(
		Send_Preview_Email::class,
		function ( $container ) {
			return new Send_Preview_Email(
				$container->get( Renderer::class ),
				$container->get( Personalizer::class ),
			);
		}
	);
	$container->register(
		Email_Api_Controller::class,
		function ( $container ) {
			return new Email_Api_Controller(
				$container->get( Personalization_Tags_Registry::class ),
			);
		}
	);
	$container->register(
		Dependency_Check::class,
		function () {
			return new Dependency_Check();
		}
	);
	$container->register(
		Email_Editor::class,
		function ( $container ) {
			return new Email_Editor(
				$container->get( Email_Api_Controller::class ),
				$container->get( Templates::class ),
				$container->get( Patterns::class ),
				$container->get( Send_Preview_Email::class ),
				$container->get( Personalization_Tags_Registry::class ),
			);
		}
	);
	// End: Email editor dependencies.

	// Start: Woo dependencies.
	$container->register(
		Bootstrap::class,
		function ( $container ) {
			return new Bootstrap(
				$container->get(Email_Editor::class),
				$container->get(Initializer::class),
			);
		}
	);

	return $container;
}