Я закончил с:
Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration($paths, $devMode, null, null, false);`
3-й и 4-й null
аргументы являются значениями по умолчанию. 5-й false
аргумент говорит ему сделать стандартный AnnotationReader
, а не основной.
Я использую Doctrine 2.5.6
.
Объяснение
Я обнаружил, что не могу заставить работать решение Яна без вызова Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration
, пока не сделал свою собственную конфигурацию. Я получаю эту ошибку:
'[Semantical Error] The annotation "@Doctrine\ORM\Mapping\Entity" in class My\Class does not exist, or could not be auto-loaded.'
Я был очень смущен, поэтому взглянул на исходный код.
Оказывается, createAnnotationMetadataConfiguration
вызывает Doctrine\ORM\Configuration::newDefaultAnnotationDriver
, а не создает драйвер аннотации напрямую. Это вызывает AnnotationRegistry::registerFile(__DIR__ . '/Mapping/Driver/DoctrineAnnotations.php');
, что кажется критическим. После этого newDefaultAnnotationDriver
просто создает new AnnotationDriver()
.