Skip to content

Instantly share code, notes, and snippets.

@BerezhniyDmitro
Created October 24, 2019 12:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BerezhniyDmitro/1dee8ae13d2f806519b0f293527288d9 to your computer and use it in GitHub Desktop.
Save BerezhniyDmitro/1dee8ae13d2f806519b0f293527288d9 to your computer and use it in GitHub Desktop.
<?php
declare(strict_types=1);
namespace App\Domain\Company\Factory;
use App\Domain\Company\DTO\CompanyRegistrationDTO;
use App\Domain\ValueObjects\Okpo;
use App\Entities\Company\Company;
use App\Entities\PersonalCabinet\PersonalCabinet;
use App\ValueObjects\Email;
use App\ValueObjects\MobilePhone;
use App\ValueObjects\Title;
/**
* Class Фабрика компаниию
*/
final class CompanyFactory
{
/**
* Метод создает компанию
*
* @param CompanyRegistrationDTO $companyRegistrationDTO Дто для создания Компании.
* @param PersonalCabinet $personalCabinet Личный кабинет.
*
* @return Company
*/
public static function makeWithPersonalCabinet(
CompanyRegistrationDTO $companyRegistrationDTO,
PersonalCabinet $personalCabinet
): Company {
$company = new Company(
$personalCabinet,
Okpo::createFromString($companyRegistrationDTO->getOkpo()),
Title::createFromString($companyRegistrationDTO->getCompanyName()),
Email::createFromString($companyRegistrationDTO->getEmail())
);
if (! empty($companyRegistrationDTO->getPhoneNumber())) {
$company->changePhone(MobilePhone::createFromString($companyRegistrationDTO->getPhoneNumber()));
}
return $company;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment