for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
namespace VSV\GVQ_API\User\Repositories;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\UuidInterface;
use VSV\GVQ_API\Common\Repositories\AbstractDoctrineRepository;
use VSV\GVQ_API\User\Models\User;
use VSV\GVQ_API\User\Repositories\Entities\UserEntity;
use VSV\GVQ_API\User\ValueObjects\Email;
class UserDoctrineRepository extends AbstractDoctrineRepository implements UserRepository
{
/**
* @inheritdoc
*/
protected function getRepositoryName(): string
return UserEntity::class;
}
public function save(User $user): void
$userEntity = UserEntity::fromUser($user);
$this->entityManager->persist($userEntity);
$this->entityManager->flush();
public function getById(UuidInterface $id): ?User
/** @var UserEntity|null $userEntity */
$userEntity = $this->objectRepository->findOneBy(
[
'id' => $id->toString(),
]
);
return $userEntity ? $userEntity->toUser() : null;
public function getByEmail(Email $email): ?User
'email' => $email->toNative(),