Inject API into Initializer using container

[MAILPOET-1823]
This commit is contained in:
Rostislav Wolny
2019-02-20 16:04:45 +01:00
committed by M. Shull
parent f64e1c81fe
commit d5ea906433

View File

@@ -2,7 +2,7 @@
namespace MailPoet\Config; namespace MailPoet\Config;
use MailPoet\API; use MailPoet\API\JSON\API;
use MailPoet\Cron\CronTrigger; use MailPoet\Cron\CronTrigger;
use MailPoet\DI\ContainerWrapper; use MailPoet\DI\ContainerWrapper;
use MailPoet\Router; use MailPoet\Router;
@@ -28,6 +28,9 @@ class Initializer {
/** @var RendererFactory */ /** @var RendererFactory */
private $renderer_factory; private $renderer_factory;
/** @var API */
private $api;
/** @var ContainerInterface */ /** @var ContainerInterface */
private $container; private $container;
@@ -36,11 +39,13 @@ class Initializer {
function __construct( function __construct(
ContainerWrapper $container, ContainerWrapper $container,
RendererFactory $renderer_factory, RendererFactory $renderer_factory,
AccessControl $access_control AccessControl $access_control,
API $api
) { ) {
$this->container = $container; $this->container = $container;
$this->renderer_factory = $renderer_factory; $this->renderer_factory = $renderer_factory;
$this->access_control = $access_control; $this->access_control = $access_control;
$this->api = $api;
} }
function init() { function init() {
@@ -243,7 +248,7 @@ class Initializer {
if (!defined(self::INITIALIZED)) return; if (!defined(self::INITIALIZED)) return;
try { try {
$this->setupHooks(); $this->setupHooks();
$this->setupJSONAPI(); $this->api->init();
$this->setupRouter(); $this->setupRouter();
$this->setupUserLocale(); $this->setupUserLocale();
} catch (\Exception $e) { } catch (\Exception $e) {
@@ -251,10 +256,6 @@ class Initializer {
} }
} }
function setupJSONAPI() {
$this->container->get(API\JSON\API::class)->init();
}
function setupRouter() { function setupRouter() {
$router = new Router\Router($this->access_control, $this->container); $router = new Router\Router($this->access_control, $this->container);
$router->init(); $router->init();