@inajaf

Как преобразовать в классы bootstrap.php и cli-config.php при настройке Doctrine ORM?

Судя по документации Доктрины, при настройки не используют классы а именно файлы bootstrap.php и cli-config.php что в дальнейшем не удобно вызывать require "bootstrap.php" для использования объекта $entityManager. Следовательно, решил преобразовать данные файлы в след. классы :

DoctrineBootstrap:
<?php

namespace App\Helpers\Doctrine;

use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
use Dotenv\Dotenv;

class DoctrineBootstrap
{
    private $isDevMode;
    private $proxyDir;
    private $cache;
    private $useSimpleAnnotationReader;
    protected EntityManager $entityManager;

    /**
     * @throws \Doctrine\ORM\ORMException
     */
    public function __construct()
    {
        $this->entityManager = EntityManager::create($this->getConnection(), $this->getDoctrineConfig());
    }

    public function getDoctrineConfig()
    {
        $this->isDevMode = true;
        $this->proxyDir = null;
        $this->cache = null;
        $this->useSimpleAnnotationReader = false;

        return Setup::createAnnotationMetadataConfiguration(
            array('src/Entity/'),
            $this->isDevMode,
            $this->proxyDir,
            $this->cache,
            $this->useSimpleAnnotationReader
        );
    }

    public function getConnection(): array
    {
        $dotenv = Dotenv::createImmutable(__DIR__ . '/src');
        $dotenv->load();

        return [
            'dbname' => $_ENV['DB_NAME'],
            'user' => $_ENV['DB_USER'],
            'password' => $_ENV['DB_PASSWORD'],
            'host' => $_ENV['DB_HOST'],
            'driver' => $_ENV['DB_DRIVER']
        ];
    }
}


CliConfig:
<?php

namespace App\Helpers\Doctrine;

use Doctrine\ORM\Tools\Console\ConsoleRunner;

class CliConfig extends DoctrineBootstrap
{
    public function __construct()
    {
        parent::__construct();

        ConsoleRunner::createHelperSet($this->entityManager);
    }
}

return new CliConfig();


При вызове CliConfig() по сути который должен срабатывать при работе с консолью то выводиться ошибка:
You are missing a "cli-config.php" or "config/cli-config.php" file in your
project, which is required to get the Doctrine Console working. You can use the
following sample as a template:


Возможно кто то реализовывал что то подобное используя классы вместо обычных файловых настроек?

Может кто помочь?
Благодарю.
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы