Пакет 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__