2013-07-03 46 views
0

我们使用Doctrine YAML文件来生成我们的实体。当我从那里我bootstrap.phpcli-config.php是文件夹中运行../../vendor/bin/doctrine orm:generate-entities src它似乎正确生成PHP实体类:当我运行../../vendor/bin/doctrine orm:schema-tool:createDoctrine架构工具创建命令失败 - 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" 

接下来,我得到了下面的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) 
]); 

我使用的是最新版本的教义通过作曲(2.3.4)加载。

任何人都可以指出我哪里出了问题吗?

谢谢

回答

1

这似乎是你的作曲家设置的问题。将它添加到您的composer.json中的psr-0部分(在autoload部分中):

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

您是对的,谢谢! – alexbilbie