Пакет Symfony: как избежать использования __DIR__ для построения пути к отображению Doctrine

Я сталкиваюсь с одной и той же проблемой в нескольких пакетах, которые я написал.

Проблема в том, что по моему BundleNameBundle класс я должен создать путь, чтобы затем загрузить сопоставления доктрины.

Для этого я делаю что-то вроде:

/**
 * {@inheritdoc}
 */
public function build(ContainerBuilder $container)
{
    parent::build($container);

    $modelDir = realpath(__DIR__ . '/Resources/config/doctrine/mappings');
    $mappings = [
        $modelDir => 'SerendipityHQ\Bundle\QueuesBundle\Model',
    ];

    $ormCompilerClass = DoctrineOrmMappingsPass::class;
    if (class_exists($ormCompilerClass)) {
        $container->addCompilerPass(
            $this->getYamlMappingDriver($mappings)
        );
    }

    $container->addCompilerPass(new DaemonDependenciesPass());
}

Полный код здесь.

Как видите, я использую __DIR__ чтобы получить путь к папке, в которой находятся сопоставления.

Теперь Sensio Insights предупреждает меня, что " Абсолютные константы пути DIR и FILE не должны использоваться".

Хорошо, но как я могу решить эту проблему? Есть какой-нибудь альтернативный способ построить путь к отображению?

1 ответ

Решение

Ты можешь использовать $this->path, Возвращает тот же результат, что и __DIR__

Другие вопросы по тегам