Automattic\WooCommerce\EmailEditor
Email_Editor_Container::container │ public static │ WC 1.0
Loads the DI container for the Email editor.
Method of the class: Email_Editor_Container{}
No Hooks.
Returns
Container.
Usage
$result = Email_Editor_Container::container( $reset );
- $reset(true|false)
- Used to reset the container to a fresh instance. Note: this means all dependencies will be reconstructed.
Default:false
Email_Editor_Container::container() Email Editor Container::container code WC 10.6.2
public static function container( $reset = false ) {
static $container;
if ( $reset ) {
$container = null;
}
if ( $container ) {
return $container;
}
$container = new Container();
$container->set(
CoreInitializer::class,
function () {
return new CoreInitializer();
}
);
$container->set(
WooCommerceInitializer::class,
function () {
return new WooCommerceInitializer();
}
);
// Start: Email editor dependencies.
$container->set(
Theme_Controller::class,
function () {
return new Theme_Controller();
}
);
$container->set(
User_Theme::class,
function () {
return new User_Theme();
}
);
$container->set(
Settings_Controller::class,
function ( $container ) {
return new Settings_Controller( $container->get( Theme_Controller::class ) );
}
);
$container->set(
Templates_Registry::class,
function () {
return new Templates_Registry();
}
);
$container->set(
Templates::class,
function ( $container ) {
return new Templates( $container->get( Templates_Registry::class ) );
}
);
$container->set(
Patterns::class,
function () {
return new Patterns();
}
);
$container->set(
Cleanup_Preprocessor::class,
function () {
return new Cleanup_Preprocessor();
}
);
$container->set(
Blocks_Width_Preprocessor::class,
function () {
return new Blocks_Width_Preprocessor();
}
);
$container->set(
Typography_Preprocessor::class,
function ( $container ) {
return new Typography_Preprocessor( $container->get( Settings_Controller::class ) );
}
);
$container->set(
Spacing_Preprocessor::class,
function () {
return new Spacing_Preprocessor();
}
);
$container->set(
Quote_Preprocessor::class,
function () {
return new Quote_Preprocessor();
}
);
$container->set(
Highlighting_Postprocessor::class,
function () {
return new Highlighting_Postprocessor();
}
);
$container->set(
Variables_Postprocessor::class,
function ( $container ) {
return new Variables_Postprocessor( $container->get( Theme_Controller::class ) );
}
);
$container->set(
Border_Style_Postprocessor::class,
function () {
return new Border_Style_Postprocessor();
}
);
$container->set(
Assets_Manager::class,
function ( $container ) {
return new Assets_Manager(
$container->get( Settings_Controller::class ),
$container->get( Theme_Controller::class ),
$container->get( User_Theme::class ),
$container->get( Email_Editor_Logger::class )
);
}
);
$container->set(
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( Quote_Preprocessor::class ),
$container->get( Highlighting_Postprocessor::class ),
$container->get( Variables_Postprocessor::class ),
$container->get( Border_Style_Postprocessor::class )
);
}
);
$container->set(
Content_Renderer::class,
function ( $container ) {
return new Content_Renderer(
$container->get( Process_Manager::class ),
new Email_Css_Inliner(),
$container->get( Theme_Controller::class ),
$container->get( Email_Editor_Logger::class )
);
}
);
$container->set(
Renderer::class,
function ( $container ) {
return new Renderer(
$container->get( Content_Renderer::class ),
$container->get( Templates::class ),
new Email_Css_Inliner(),
$container->get( Theme_Controller::class ),
$container->get( Personalization_Tags_Registry::class ),
);
}
);
$container->set(
Personalization_Tags_Registry::class,
function ( $container ) {
return new Personalization_Tags_Registry(
$container->get( Email_Editor_Logger::class )
);
}
);
$container->set(
Personalizer::class,
function ( $container ) {
return new Personalizer(
$container->get( Personalization_Tags_Registry::class ),
);
}
);
$container->set(
Send_Preview_Email::class,
function ( $container ) {
return new Send_Preview_Email(
$container->get( Renderer::class ),
$container->get( Personalizer::class ),
);
}
);
$container->set(
Email_Api_Controller::class,
function ( $container ) {
return new Email_Api_Controller(
$container->get( Personalization_Tags_Registry::class ),
);
}
);
$container->set(
Dependency_Check::class,
function () {
return new Dependency_Check();
}
);
$container->set(
Email_Editor_Logger::class,
function () {
return new Email_Editor_Logger();
}
);
$container->set(
Site_Style_Sync_Controller::class,
function () {
return new Site_Style_Sync_Controller();
}
);
$container->set(
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 ),
$container->get( Email_Editor_Logger::class ),
$container->get( Assets_Manager::class )
);
}
);
// End: Email editor dependencies.
// Start: Woo dependencies.
$container->set(
Bootstrap::class,
function ( $container ) {
return new Bootstrap(
$container->get( Email_Editor::class ),
$container->get( CoreInitializer::class ),
$container->get( WooCommerceInitializer::class ),
);
}
);
return $container;
}