Код IT
← Каталог

Работа с базами данных из PHP — Гибридные подходы

Фрагмент из «Работа с базами данных из PHP»: Гибридные подходы.

PHP main.php
interface UserRepositoryInterface
{
    public function findById(UserId $id): ?User;
    public function save(User $user): void;
}

class DoctrineUserRepository implements UserRepositoryInterface
{
    public function findById(UserId $id): ?User
    {
        // Использует Doctrine EntityManager
        return $this->em->find(User::class, $id->value());
    }

    public function save(User $user): void
    {
        $this->em->persist($user);
        $this->em->flush();
    }
}

// В CLI-задаче или миграции — можно подменить на SQLite-реализацию для тестов
interface UserRepositoryInterface
{
    public function findById(UserId $id): ?User;
    public function save(User $user): void;
}

class DoctrineUserRepository implements UserRepositoryInterface
{
    public function findById(UserId $id): ?User
    {
        // Использует Doctrine EntityManager
        return $this->em->find(User::class, $id->value());
    }

    public function save(User $user): void
    {
        $this->em->persist($user);
        $this->em->flush();
    }
}

// В CLI-задаче или миграции — можно подменить на SQLite-реализацию для тестов