get = array(); // Settings $this->get[ModsForHeskSettingsGateway::class] = new ModsForHeskSettingsGateway(); // API Checker $this->get[ApiChecker::class] = new ApiChecker($this->get[ModsForHeskSettingsGateway::class]); // Custom Navigation $this->get[CustomNavElementGateway::class] = new CustomNavElementGateway(); $this->get[CustomNavElementHandler::class] = new CustomNavElementHandler($this->get[CustomNavElementGateway::class]); // Logging $this->get[LoggingGateway::class] = new LoggingGateway(); // Verified Email Checker $this->get[VerifiedEmailGateway::class] = new VerifiedEmailGateway(); $this->get[VerifiedEmailChecker::class] = new VerifiedEmailChecker($this->get[VerifiedEmailGateway::class]); // Users $this->get[UserGateway::class] = new UserGateway(); $this->get[UserContextBuilder::class] = new UserContextBuilder($this->get[UserGateway::class]); // Categories $this->get[CategoryGateway::class] = new CategoryGateway(); $this->get[CategoryRetriever::class] = new CategoryRetriever($this->get[CategoryGateway::class]); // Bans $this->get[BanGateway::class] = new BanGateway(); $this->get[BanRetriever::class] = new BanRetriever($this->get[BanGateway::class]); // Statuses $this->get[StatusGateway::class] = new StatusGateway(); // Email Sender $this->get[EmailTemplateRetriever::class] = new EmailTemplateRetriever(); $this->get[EmailTemplateParser::class] = new EmailTemplateParser($this->get[StatusGateway::class], $this->get[CategoryGateway::class], $this->get[UserGateway::class], $this->get[EmailTemplateRetriever::class]); $this->get[BasicEmailSender::class] = new BasicEmailSender(); $this->get[MailgunEmailSender::class] = new MailgunEmailSender(); $this->get[EmailSenderHelper::class] = new EmailSenderHelper($this->get[EmailTemplateParser::class], $this->get[BasicEmailSender::class], $this->get[MailgunEmailSender::class]); // Tickets $this->get[UserToTicketChecker::class] = new UserToTicketChecker($this->get[UserGateway::class]); $this->get[TicketGateway::class] = new TicketGateway(); $this->get[TicketRetriever::class] = new TicketRetriever($this->get[TicketGateway::class], $this->get[UserToTicketChecker::class]); $this->get[TicketValidators::class] = new TicketValidators($this->get[TicketGateway::class]); $this->get[TrackingIdGenerator::class] = new TrackingIdGenerator($this->get[TicketGateway::class]); $this->get[Autoassigner::class] = new Autoassigner($this->get[CategoryGateway::class], $this->get[UserGateway::class]); $this->get[NewTicketValidator::class] = new NewTicketValidator($this->get[CategoryRetriever::class], $this->get[BanRetriever::class], $this->get[TicketValidators::class]); $this->get[TicketCreator::class] = new TicketCreator($this->get[NewTicketValidator::class], $this->get[TrackingIdGenerator::class], $this->get[Autoassigner::class], $this->get[StatusGateway::class], $this->get[TicketGateway::class], $this->get[VerifiedEmailChecker::class], $this->get[EmailSenderHelper::class], $this->get[UserGateway::class], $this->get[ModsForHeskSettingsGateway::class]); $this->get[FileWriter::class] = new FileWriter(); $this->get[FileReader::class] = new FileReader(); $this->get[FileDeleter::class] = new FileDeleter(); $this->get[AttachmentGateway::class] = new AttachmentGateway(); $this->get[AttachmentHandler::class] = new AttachmentHandler($this->get[TicketGateway::class], $this->get[AttachmentGateway::class], $this->get[FileWriter::class], $this->get[UserToTicketChecker::class], $this->get[FileDeleter::class]); $this->get[AttachmentRetriever::class] = new AttachmentRetriever($this->get[AttachmentGateway::class], $this->get[FileReader::class], $this->get[TicketGateway::class], $this->get[UserToTicketChecker::class]); $this->get[TicketDeleter::class] = new TicketDeleter($this->get[TicketGateway::class], $this->get[UserToTicketChecker::class], $this->get[AttachmentHandler::class]); $this->get[TicketEditor::class] = new TicketEditor($this->get[TicketGateway::class], $this->get[UserToTicketChecker::class]); // Statuses $this->get[StatusRetriever::class] = new StatusRetriever($this->get[StatusGateway::class]); // Settings $this->get[SettingsRetriever::class] = new SettingsRetriever($this->get[ModsForHeskSettingsGateway::class]); } }