diff --git a/lib/Config/Initializer.php b/lib/Config/Initializer.php index 415b6fca6b..ece4352d91 100644 --- a/lib/Config/Initializer.php +++ b/lib/Config/Initializer.php @@ -40,6 +40,9 @@ class Initializer { /** @var SettingsController */ private $settings; + /** @var Router\Router */ + private $router; + const INITIALIZED = 'MAILPOET_INITIALIZED'; function __construct( @@ -48,7 +51,8 @@ class Initializer { AccessControl $access_control, API $api, Activator $activator, - SettingsController $settings + SettingsController $settings, + Router\Router $router ) { $this->container = $container; $this->renderer_factory = $renderer_factory; @@ -56,6 +60,7 @@ class Initializer { $this->api = $api; $this->activator = $activator; $this->settings = $settings; + $this->router = $router; } function init() { @@ -258,18 +263,13 @@ class Initializer { try { $this->setupHooks(); $this->api->init(); - $this->setupRouter(); + $this->router->init(); $this->setupUserLocale(); } catch (\Exception $e) { $this->handleFailedInitialization($e); } } - function setupRouter() { - $router = new Router\Router($this->access_control, $this->container); - $router->init(); - } - function setupUserLocale() { if (get_user_locale() === get_locale()) return; unload_textdomain(Env::$plugin_name); diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index c44be59ff5..d021aabcee 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -74,6 +74,8 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Router\Endpoints\Subscription::class)->setPublic(true); $container->autowire(\MailPoet\Router\Endpoints\Track::class)->setPublic(true); $container->autowire(\MailPoet\Router\Endpoints\ViewInBrowser::class)->setPublic(true); + $container->autowire(\MailPoet\Router\Router::class) + ->setArgument('$container', new Reference(ContainerWrapper::class)); // Mailer $container->autowire(\MailPoet\Mailer\Mailer::class); // Subscribers