Ported AbstractFactory, UserFactory.

This commit is contained in:
Alexey Skobkin 2023-03-28 20:11:28 +03:00
parent 7c9ee60103
commit 5afc8d91b4
No known key found for this signature in database
GPG Key ID: 5D5CEF6F221278E7
3 changed files with 25 additions and 39 deletions

View File

@ -1,16 +0,0 @@
<?php
namespace src\PointToolsBundle\Service\Factory;
use Psr\Log\LoggerInterface;
abstract class AbstractFactory
{
/** @var LoggerInterface */
protected $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}
}

View File

@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
namespace App\Factory;
use Psr\Log\LoggerInterface;
abstract class AbstractFactory
{
public function __construct(
protected LoggerInterface $logger,
) {
}
}

View File

@ -1,35 +1,25 @@
<?php
declare(strict_types=1);
namespace src\PointToolsBundle\Service\Factory;
namespace App\Factory;
use Psr\Log\LoggerInterface;
use src\PointToolsBundle\DTO\Api\User as UserDTO;
use src\PointToolsBundle\Entity\User;
use src\PointToolsBundle\Repository\UserRepository;
use src\PointToolsBundle\Exception\Factory\InvalidUserDataException;
use src\PointToolsBundle\Service\Factory\AbstractFactory;
use App\DTO\Api\User as UserDTO;
use App\Entity\User;
use App\Exception\Factory\InvalidUserDataException;
use App\Repository\UserRepository;
class UserFactory extends AbstractFactory
{
public const DATE_FORMAT = 'Y-m-d_H:i:s';
/** @var UserRepository */
private $userRepository;
public function __construct(LoggerInterface $logger, UserRepository $userRepository)
{
public function __construct(
LoggerInterface $logger,
private readonly UserRepository $userRepository,
) {
parent::__construct($logger);
$this->userRepository = $userRepository;
}
/**
* @param UserDTO $userData
*
* @return User
*
* @throws InvalidUserDataException
*/
public function findOrCreateFromDTO(UserDTO $userData): User
{
// @todo LOG
@ -56,9 +46,7 @@ class UserFactory extends AbstractFactory
return $user;
}
/**
* @return User[]
*/
/** @return User[] */
public function findOrCreateFromDTOArray(array $usersData): array
{
// @todo LOG