Doctrine 2.0 ReflectionException, когда я пытаюсь сделать YAML-сопоставление

У меня в моем cli-config.php этот код:

$driverImpl = new \Doctrine\ORM\Mapping\Driver\YamlDriver(array(__DIR__.'/yaml')); $driverImpl->setFileExtension('.yml'); $config->setMetadataDriverImpl($driverImpl); 

В ./yaml есть файлы yml (Client.yml, Worker.yml, Company.yml)

Когда я запускаю файл для генерации в db схемы с этим инструкцией:

 php doctrine orm:schema-tool:create 

броски:

 PHP Warning: class_parents(): Class Client does not exist and could not be loaded in applicationPath\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222 Warning: class_parents(): Class Cliente does not exist and could not be loaded in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222 PHP Warning: array_reverse() expects parameter 1 to be array, boolean given in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222 Warning: array_reverse() expects parameter 1 to be array, boolean given in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222 PHP Warning: Invalid argument supplied for foreach() in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222 Warning: Invalid argument supplied for foreach() in applicationPath\\system\application\libraries\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 222 [ReflectionException] Class Client does not exist 

Это то же самое, что документация Doctrine http://www.doctrine-project.org/docs/orm/2.0/en/reference/yaml-mapping.html

Не понимаю, почему это происходит, любая идея? благодаря

IIRC, SchemaTool будет генерировать SQL на основе экземпляров ClassMetadata, а не непосредственно из ваших сопоставлений YAML. Для экземпляров ClassMetadata требуются и ваши фактические классы сущностей

Убедитесь, что в вашем инструменте командной строки загружены все загруженные / автоматически загруженные классы сущностей.

Я столкнулся с такой же проблемой. Трюк состоит в том, чтобы сгенерировать сущности из файлов yaml с параметрами -generate-annotations, установленными в 1. Я скопировал приведенную ниже команду:

 $ doctrine orm:generate-entities --generate-annotations=1 Entities/ 

Это делает то, что он генерирует сущности вместе со всей информацией о сопоставлении. Теперь, если вы измените конфигурацию драйвера метаданных в своем бутстрапе, чтобы использовать объекты, а не файлы yaml, создание схемы должно работать.

EDIT 2017-05-31 Пересмотр этого через некоторое время. Это похоже на случай, когда Doctrine не может найти ваш «клиент класса» из-за проблем с автозагрузкой. Вы можете исправить это, включив в свой файл cli-config.php путь к сценарию загрузочного файла / автозагрузчика.