transparent-email/src/TransparentEmailFactory.php

48 lines
1.3 KiB
PHP
Raw Normal View History

2016-09-23 22:29:25 +03:00
<?php
declare(strict_types=1);
namespace bkrukowski\TransparentEmail;
use bkrukowski\TransparentEmail\Services\AppsGoogleCom;
use bkrukowski\TransparentEmail\Services\GmailCom;
2020-02-18 16:56:53 +03:00
use bkrukowski\TransparentEmail\Services\IcloudCom;
use bkrukowski\TransparentEmail\Services\MailRu;
2016-09-23 22:29:25 +03:00
use bkrukowski\TransparentEmail\Services\OutlookCom;
use bkrukowski\TransparentEmail\Services\TlenPl;
use bkrukowski\TransparentEmail\Services\Www33MailCom;
use bkrukowski\TransparentEmail\Services\YahooCom;
use bkrukowski\TransparentEmail\Services\YandexRu;
2016-09-23 22:29:25 +03:00
class TransparentEmailFactory
2016-09-23 22:29:25 +03:00
{
2016-10-26 21:13:11 +03:00
public function createDefault() : TransparentEmailInterface
2016-09-23 22:29:25 +03:00
{
2016-10-26 21:13:11 +03:00
return new TransparentEmail($this->createServiceCollector());
}
2016-10-26 21:13:11 +03:00
private function createServiceCollector() : ServiceCollectorInterface
{
$collector = new ServiceCollector();
2016-10-26 21:13:11 +03:00
foreach ($this->getAllServicesClasses() as $servicesClass) {
$collector->addService(new $servicesClass());
2016-09-23 22:29:25 +03:00
}
return $collector;
2016-09-23 22:29:25 +03:00
}
2016-10-26 21:13:11 +03:00
private function getAllServicesClasses() : array
2016-09-23 22:29:25 +03:00
{
return [
GmailCom::class,
OutlookCom::class,
YahooCom::class,
Www33MailCom::class,
TlenPl::class,
YandexRu::class,
MailRu::class,
2020-02-18 16:56:53 +03:00
IcloudCom::class
2016-09-23 22:29:25 +03:00
];
}
}