首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主义架构工具创建命令失败- ReflectionException类不存在

主义架构工具创建命令失败- ReflectionException类不存在
EN

Stack Overflow用户
提问于 2013-07-03 19:34:44
回答 1查看 3.2K关注 0票数 0

我们使用Doctrine YAML文件来生成我们的实体。当我从我的bootstrap.phpcli-config.php所在的文件夹运行../../vendor/bin/doctrine orm:generate-entities src时,它似乎正确地生成了实体类:

代码语言:javascript
复制
../../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错误堆栈跟踪:

代码语言:javascript
复制
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实体文件肯定是正确创建的,并且名称空间也是正确的。

供参考的是我的bootstrap.php文件:

代码语言:javascript
复制
<?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文件:

代码语言:javascript
复制
<?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加载的Doctrine的最新版本(2.3.4)。

有人能告诉我哪里出了问题吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-03 20:11:55

这似乎是您的作曲家设置的问题。将此代码添加到composer.json的psr-0部分(在自动加载部分中):

代码语言:javascript
复制
"Entity\\": "src/"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17446873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档