2013-07-03 2 views
0

Мы используем файлы YAML Doctrine для создания наших объектов. Когда я бегу ../../vendor/bin/doctrine orm:generate-entities src из папки, где мой bootstrap.php и cli-config.php является то, как представляется, правильно генерировать классы PHP сущностей:Инструмент Doctrine schema create command failed - ReflectionException Класс не существует

../../vendor/bin/doctrine orm:generate-entities src 
Generating Doctrine entities... 
Processing entity "Entity\BucketGroup" 
Processing entity "Entity\Cheat" 
Processing entity "Entity\Content" 
Processing entity "Entity\ContentGroup" 
Processing entity "Entity\ContentType" 
Processing entity "Entity\Developer" 
Processing entity "Entity\ExternalIdentityProvider" 
Processing entity "Entity\Game" 
Processing entity "Entity\GameRelease" 
Processing entity "Entity\Genre" 
Processing entity "Entity\HighlightedContent" 
Processing entity "Entity\Media" 
Processing entity "Entity\MediaGroup" 
Processing entity "Entity\Platform" 
Processing entity "Entity\ProsAndCons" 
Processing entity "Entity\Publisher" 
Processing entity "Entity\Rating" 
Processing entity "Entity\Region" 
Processing entity "Entity\Site" 
Processing entity "Entity\Tag" 
Processing entity "Entity\User" 
Processing entity "Entity\UserExternalIdentityProvider" 
Processing entity "Entity\VideoAdvert" 

Далее, когда я бегу ../../vendor/bin/doctrine orm:schema-tool:create я получаю следующий PHP стека ошибок трассировки:

PHP Warning: class_parents(): Class Entity\BucketGroup does not exist and could not be loaded in /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php on line 40 
PHP Stack trace: 
PHP 1. {main}() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine:0 
PHP 2. include() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine:4 
PHP 3. Doctrine\ORM\Tools\Console\ConsoleRunner::run() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine.php:43 
PHP 4. Symfony\Component\Console\Application->run() /vagrant/www/creo.api/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php:41 
PHP 5. Symfony\Component\Console\Application->doRun() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:121 
PHP 6. Symfony\Component\Console\Application->doRunCommand() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:191 
PHP 7. Symfony\Component\Console\Command\Command->run() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:899 
PHP 8. Doctrine\ORM\Tools\Console\Command\SchemaTool\AbstractCommand->execute() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:244 
PHP 9. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() /vagrant/www/creo.api/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:47 
PHP 10. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:112 
PHP 11. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:205 
PHP 12. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getParentClasses() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:281 
PHP 13. Doctrine\Common\Persistence\Mapping\RuntimeReflectionService->getParentClasses() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:257 
PHP 14. class_parents() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php:40 
PHP Warning: array_reverse() expects parameter 1 to be array, boolean given in /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php on line 257 
PHP Stack trace: 
PHP 1. {main}() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine:0 
PHP 2. include() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine:4 
PHP 3. Doctrine\ORM\Tools\Console\ConsoleRunner::run() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine.php:43 
PHP 4. Symfony\Component\Console\Application->run() /vagrant/www/creo.api/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php:41 
PHP 5. Symfony\Component\Console\Application->doRun() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:121 
PHP 6. Symfony\Component\Console\Application->doRunCommand() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:191 
PHP 7. Symfony\Component\Console\Command\Command->run() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:899 
PHP 8. Doctrine\ORM\Tools\Console\Command\SchemaTool\AbstractCommand->execute() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:244 
PHP 9. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() /vagrant/www/creo.api/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:47 
PHP 10. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:112 
PHP 11. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:205 
PHP 12. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getParentClasses() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:281 
PHP 13. array_reverse() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:257 
PHP Warning: Invalid argument supplied for foreach() in /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php on line 257 
PHP Stack trace: 
PHP 1. {main}() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine:0 
PHP 2. include() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine:4 
PHP 3. Doctrine\ORM\Tools\Console\ConsoleRunner::run() /vagrant/www/creo.api/vendor/doctrine/orm/bin/doctrine.php:43 
PHP 4. Symfony\Component\Console\Application->run() /vagrant/www/creo.api/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php:41 
PHP 5. Symfony\Component\Console\Application->doRun() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:121 
PHP 6. Symfony\Component\Console\Application->doRunCommand() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:191 
PHP 7. Symfony\Component\Console\Command\Command->run() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Application.php:899 
PHP 8. Doctrine\ORM\Tools\Console\Command\SchemaTool\AbstractCommand->execute() /vagrant/www/creo.api/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:244 
PHP 9. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() /vagrant/www/creo.api/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:47 
PHP 10. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:112 
PHP 11. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:205 
PHP 12. Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getParentClasses() /vagrant/www/creo.api/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:281 



[ReflectionException] 
Class Entity\BucketGroup does not exist 

Файл сущности BucketGroup PHP определенно создается правильно и корректно помещается в имена.

Для справки мой bootstrap.php файл:

<?php 

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

include '../../vendor/autoload.php'; 

$isDevMode = true; 

$config = Setup::createYAMLMetadataConfiguration([__DIR__ . '/config/yaml'], $isDevMode); 

// The included file is generated by db-generate-schema Chef recipe and include the DB connection parameters in an array called $conn 
include ('dbgenerate.php'); 

$entityManager = EntityManager::create($conn, $config); 

и вот мой cli-config.php файл:

<?php 

include __DIR__ . '/bootstrap.php'; 

$entityManager->getConnection() 
       ->getDatabasePlatform() 
       ->registerDoctrineTypeMapping('enum', 'string'); 

$helperSet = new \Symfony\Component\Console\Helper\HelperSet([ 
    'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($entityManager->getConnection()), 
    'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($entityManager) 
]); 

Я использую последнюю версию доктрины, загруженной через Composer (2.3.4).

Может ли кто-нибудь указать мне в сторону, что происходит неправильно, пожалуйста?

Спасибо

ответ

1

Это, как представляется, проблема с установкой композитора. Добавьте это в раздел psr-0 (в разделе автозагрузки) в своем composer.json:

"Entity\\": "src/" 
+0

Вы были верны, спасибо! – alexbilbie