Move dependencies creation to DI container

[MAILPOET-1571]
This commit is contained in:
Pavel Dohnal
2019-01-14 14:05:26 +01:00
parent ef5eba31d1
commit 3bd80aecd3
2 changed files with 28 additions and 8 deletions

View File

@ -3,6 +3,7 @@
namespace MailPoet\Cron\Workers;
use MailPoet\Config\Renderer;
use MailPoet\Cron\Workers\StatsNotifications\Scheduler as StatsNotificationScheduler;
use MailPoet\Cron\Workers\Scheduler as SchedulerWorker;
use MailPoet\Cron\Workers\SendingQueue\SendingQueue as SendingQueueWorker;
use MailPoet\Cron\Workers\SendingQueue\Migration as MigrationWorker;
@ -11,14 +12,29 @@ use MailPoet\Cron\Workers\Bounce as BounceWorker;
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck as PremiumKeyCheckWorker;
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck as SendingServiceKeyCheckWorker;
use MailPoet\Cron\Workers\SendingQueue\SendingErrorHandler;
use MailPoet\Mailer\Mailer;
class WorkersFactory {
/** @var SendingErrorHandler */
private $sending_error_handler;
public function __construct(SendingErrorHandler $sending_error_handler) {
/** @var StatsNotificationScheduler */
private $scheduler;
/** @var Mailer */
private $mailer;
/**
* @var Renderer
*/
private $renderer;
public function __construct(SendingErrorHandler $sending_error_handler, StatsNotificationScheduler $scheduler, Mailer $mailer, Renderer $renderer) {
$this->sending_error_handler = $sending_error_handler;
$this->scheduler = $scheduler;
$this->mailer = $mailer;
$this->renderer = $renderer;
}
/** @return SchedulerWorker */
@ -28,16 +44,10 @@ class WorkersFactory {
/** @return SendingQueueWorker */
function createQueueWorker($timer) {
return new SendingQueueWorker($this->sending_error_handler, $this->createStatsNotificationsWorker($timer), $timer);
return new SendingQueueWorker($this->sending_error_handler, $this->scheduler, $timer);
}
function createStatsNotificationsWorker($timer) {
//TODO get those from DI
$caching = !WP_DEBUG;
$debugging = WP_DEBUG;
$this->renderer = new Renderer($caching, $debugging);
$this->mailer = new \MailPoet\Mailer\Mailer();
return new StatsNotificationsWorker($this->mailer, $this->renderer, $timer);
}