0
我们使用Doctrine YAML文件来生成我们的实体。当我从那里我bootstrap.php
和cli-config.php
是文件夹中运行../../vendor/bin/doctrine orm:generate-entities src
它似乎正确生成PHP实体类:当我运行../../vendor/bin/doctrine orm:schema-tool:create
Doctrine架构工具创建命令失败 - 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)加载。
任何人都可以指出我哪里出了问题吗?
谢谢
您是对的,谢谢! – alexbilbie