diff --git a/lib/Config/Initializer.php b/lib/Config/Initializer.php index 4b26a55f4c..fefcbabd30 100644 --- a/lib/Config/Initializer.php +++ b/lib/Config/Initializer.php @@ -18,16 +18,26 @@ if (!defined('ABSPATH')) exit; require_once(ABSPATH . 'wp-admin/includes/plugin.php'); class Initializer { + private $access_control; + + /** @var Renderer */ private $renderer; + /** @var RendererFactory */ + private $renderer_factory; + /** @var ContainerInterface */ private $container; const INITIALIZED = 'MAILPOET_INITIALIZED'; - function __construct(ContainerWrapper $container) { + function __construct( + ContainerWrapper $container, + RendererFactory $renderer_factory + ) { $this->container = $container; + $this->renderer_factory = $renderer_factory; } function init() { @@ -109,17 +119,13 @@ class Initializer { function preInitialize() { try { - $this->setupRenderer(); + $this->renderer = $this->renderer_factory->getRenderer(); $this->setupWidget(); } catch (\Exception $e) { $this->handleFailedInitialization($e); } } - function setupRenderer() { - $this->renderer = $this->container->get(Renderer::class); - } - function setupWidget() { register_widget('\MailPoet\Form\Widget'); } diff --git a/lib/Config/RendererFactory.php b/lib/Config/RendererFactory.php new file mode 100644 index 0000000000..afaef636c5 --- /dev/null +++ b/lib/Config/RendererFactory.php @@ -0,0 +1,20 @@ +renderer) { + $caching = !WP_DEBUG; + $debugging = WP_DEBUG; + $this->renderer = new Renderer($caching, $debugging); + } + return $this->renderer; + } +} diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index eb9b18e8ba..c44be59ff5 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -55,9 +55,10 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Config\Hooks::class)->setPublic(true); $container->autowire(\MailPoet\Config\Initializer::class)->setPublic(true); $container->autowire(\MailPoet\Config\Menu::class)->setPublic(true); + $container->autowire(\MailPoet\Config\RendererFactory::class)->setPublic(true); $container->register(\MailPoet\Config\Renderer::class) ->setPublic(true) - ->setFactory([__CLASS__, 'createRenderer']); + ->setFactory([new Reference(\MailPoet\Config\RendererFactory::class), 'getRenderer']); // Cron $container->autowire(\MailPoet\Cron\Daemon::class)->setPublic(true); $container->autowire(\MailPoet\Cron\DaemonHttpRunner::class)->setPublic(true); @@ -115,10 +116,4 @@ class ContainerConfigurator implements IContainerConfigurator { } return $container->get(IContainerConfigurator::PREMIUM_CONTAINER_SERVICE_SLUG)->get($id); } - - static function createRenderer() { - $caching = !WP_DEBUG; - $debugging = WP_DEBUG; - return new \MailPoet\Config\Renderer($caching, $debugging); - } }