教条orm:模式工具:create-Class Bug不存在



嗨,这是我第一次做doctrin22,但我无法让它工作,

这是我的代码

index.php

<?php
if (getenv('APPLICATION_ENV')) {
    define('APPLICATION_ENV', getenv('APPLICATION_ENV'));
} else {
    define('APPLICATION_ENV', 'production');
}
require_once 'Doctrine/Common/ClassLoader.php';
$classLoader = new DoctrineCommonClassLoader('Doctrine');
$classLoader->register();
$config = new DoctrineORMConfiguration(); // (2)
// Proxy Configuration (3)
$config->setProxyDir(__DIR__.'/lib/MyProject/Proxies');
$config->setProxyNamespace('MyProjectProxies');
$config->setAutoGenerateProxyClasses((APPLICATION_ENV == "development"));
// Mapping Configuration (4)
$driverImpl = new DoctrineORMMappingDriverXmlDriver(__DIR__."/config/mappings/xml");
$config->setMetadataDriverImpl($driverImpl);

// Caching Configuration (5)
if (APPLICATION_ENV == "development") {
    $cache = new DoctrineCommonCacheArrayCache();
} else {
    $cache = new DoctrineCommonCacheApcCache();
}
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);
// database configuration parameters (6)
$conn = array(
    'driver' => 'pdo_sqlite',
    'path' => __DIR__ . '/db.sqlite',
);
// obtaining the entity manager (7)
$evm = new DoctrineCommonEventManager();
$entityManager = DoctrineORMEntityManager::create($conn, $config, $evm);
?>

cli-config.php

<?php
require_once 'index.php';
$helperSet = new SymfonyComponentConsoleHelperHelperSet(array(
    'em' => new DoctrineORMToolsConsoleHelperEntityManagerHelper($entityManager)
));
?>

和我的文件夹结构

myproject/index.php
myproject/cli-config.php
myproject/config/mappings/xml/Bug.dcm.xml
myproject/config/mappings/xml/Product.dcm.xml
myproject/config/mappings/xml/User.dcm.xml

当我跑步的时候myproject/protrine orm:schema工具:创建-转储sql

我得到以下

doctrine orm:schema-tool:create --dump-sql
PHP Warning:  class_parents(): Class Bug does not exist and could not be loaded in /usr/local/zend/share/pear/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php on line 40
PHP Stack trace:
PHP   1. {main}() /usr/local/zend/bin/doctrine:0
PHP   2. include() /usr/local/zend/bin/doctrine:4
PHP   3. DoctrineORMToolsConsoleConsoleRunner::run() /usr/local/zend/bin/doctrine.php:50
PHP   4. SymfonyComponentConsoleApplication->run() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/ConsoleRunner.php:39
PHP   5. SymfonyComponentConsoleApplication->doRun() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:118
PHP   6. SymfonyComponentConsoleCommandCommand->run() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:194
PHP   7. DoctrineORMToolsConsoleCommandSchemaToolAbstractCommand->execute() /usr/local/zend/share/pear/Symfony/Component/Console/Command/Command.php:224
PHP   8. DoctrineORMMappingClassMetadataFactory->getAllMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:53
PHP   9. DoctrineORMMappingClassMetadataFactory->getMetadataFor() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:131
PHP  10. DoctrineORMMappingClassMetadataFactory->loadMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:178
PHP  11. DoctrineORMMappingClassMetadataFactory->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:254
PHP  12. DoctrineCommonPersistenceMappingRuntimeReflectionService->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:231
PHP  13. class_parents() /usr/local/zend/share/pear/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php:40
Warning: class_parents(): Class Bug does not exist and could not be loaded in /usr/local/zend/share/pear/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php on line 40
Call Stack:
    0.0001     625400   1. {main}() /usr/local/zend/bin/doctrine:0
    0.0002     639440   2. include('/usr/local/zend/bin/doctrine.php') /usr/local/zend/bin/doctrine:4
    0.0086    4245576   3. DoctrineORMToolsConsoleConsoleRunner::run() /usr/local/zend/bin/doctrine.php:50
    0.0151    6311808   4. SymfonyComponentConsoleApplication->run() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/ConsoleRunner.php:39
    0.0164    6761376   5. SymfonyComponentConsoleApplication->doRun() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:118
    0.0169    6761544   6. SymfonyComponentConsoleCommandCommand->run() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:194
    0.0171    6761920   7. DoctrineORMToolsConsoleCommandSchemaToolAbstractCommand->execute() /usr/local/zend/share/pear/Symfony/Component/Console/Command/Command.php:224
    0.0171    6761920   8. DoctrineORMMappingClassMetadataFactory->getAllMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:53
    0.0172    6764016   9. DoctrineORMMappingClassMetadataFactory->getMetadataFor() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:131
    0.0172    6764064  10. DoctrineORMMappingClassMetadataFactory->loadMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:178
    0.0172    6764280  11. DoctrineORMMappingClassMetadataFactory->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:254
    0.0173    6799712  12. DoctrineCommonPersistenceMappingRuntimeReflectionService->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:231
    0.0173    6799760  13. class_parents() /usr/local/zend/share/pear/Doctrine/Common/Persistence/Mapping/RuntimeReflectionService.php:40
PHP Warning:  array_reverse() expects parameter 1 to be array, boolean given in /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php on line 231
PHP Stack trace:
PHP   1. {main}() /usr/local/zend/bin/doctrine:0
PHP   2. include() /usr/local/zend/bin/doctrine:4
PHP   3. DoctrineORMToolsConsoleConsoleRunner::run() /usr/local/zend/bin/doctrine.php:50
PHP   4. SymfonyComponentConsoleApplication->run() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/ConsoleRunner.php:39
PHP   5. SymfonyComponentConsoleApplication->doRun() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:118
PHP   6. SymfonyComponentConsoleCommandCommand->run() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:194
PHP   7. DoctrineORMToolsConsoleCommandSchemaToolAbstractCommand->execute() /usr/local/zend/share/pear/Symfony/Component/Console/Command/Command.php:224
PHP   8. DoctrineORMMappingClassMetadataFactory->getAllMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:53
PHP   9. DoctrineORMMappingClassMetadataFactory->getMetadataFor() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:131
PHP  10. DoctrineORMMappingClassMetadataFactory->loadMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:178
PHP  11. DoctrineORMMappingClassMetadataFactory->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:254
PHP  12. array_reverse() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:231
Warning: array_reverse() expects parameter 1 to be array, boolean given in /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php on line 231
Call Stack:
    0.0001     625400   1. {main}() /usr/local/zend/bin/doctrine:0
    0.0002     639440   2. include('/usr/local/zend/bin/doctrine.php') /usr/local/zend/bin/doctrine:4
    0.0086    4245576   3. DoctrineORMToolsConsoleConsoleRunner::run() /usr/local/zend/bin/doctrine.php:50
    0.0151    6311808   4. SymfonyComponentConsoleApplication->run() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/ConsoleRunner.php:39
    0.0164    6761376   5. SymfonyComponentConsoleApplication->doRun() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:118
    0.0169    6761544   6. SymfonyComponentConsoleCommandCommand->run() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:194
    0.0171    6761920   7. DoctrineORMToolsConsoleCommandSchemaToolAbstractCommand->execute() /usr/local/zend/share/pear/Symfony/Component/Console/Command/Command.php:224
    0.0171    6761920   8. DoctrineORMMappingClassMetadataFactory->getAllMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:53
    0.0172    6764016   9. DoctrineORMMappingClassMetadataFactory->getMetadataFor() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:131
    0.0172    6764064  10. DoctrineORMMappingClassMetadataFactory->loadMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:178
    0.0172    6764280  11. DoctrineORMMappingClassMetadataFactory->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:254
    0.0176    6799840  12. array_reverse() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:231
PHP Warning:  Invalid argument supplied for foreach() in /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php on line 231
PHP Stack trace:
PHP   1. {main}() /usr/local/zend/bin/doctrine:0
PHP   2. include() /usr/local/zend/bin/doctrine:4
PHP   3. DoctrineORMToolsConsoleConsoleRunner::run() /usr/local/zend/bin/doctrine.php:50
PHP   4. SymfonyComponentConsoleApplication->run() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/ConsoleRunner.php:39
PHP   5. SymfonyComponentConsoleApplication->doRun() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:118
PHP   6. SymfonyComponentConsoleCommandCommand->run() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:194
PHP   7. DoctrineORMToolsConsoleCommandSchemaToolAbstractCommand->execute() /usr/local/zend/share/pear/Symfony/Component/Console/Command/Command.php:224
PHP   8. DoctrineORMMappingClassMetadataFactory->getAllMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:53
PHP   9. DoctrineORMMappingClassMetadataFactory->getMetadataFor() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:131
PHP  10. DoctrineORMMappingClassMetadataFactory->loadMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:178
PHP  11. DoctrineORMMappingClassMetadataFactory->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:254
Warning: Invalid argument supplied for foreach() in /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php on line 231
Call Stack:
    0.0001     625400   1. {main}() /usr/local/zend/bin/doctrine:0
    0.0002     639440   2. include('/usr/local/zend/bin/doctrine.php') /usr/local/zend/bin/doctrine:4
    0.0086    4245576   3. DoctrineORMToolsConsoleConsoleRunner::run() /usr/local/zend/bin/doctrine.php:50
    0.0151    6311808   4. SymfonyComponentConsoleApplication->run() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/ConsoleRunner.php:39
    0.0164    6761376   5. SymfonyComponentConsoleApplication->doRun() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:118
    0.0169    6761544   6. SymfonyComponentConsoleCommandCommand->run() /usr/local/zend/share/pear/Symfony/Component/Console/Application.php:194
    0.0171    6761920   7. DoctrineORMToolsConsoleCommandSchemaToolAbstractCommand->execute() /usr/local/zend/share/pear/Symfony/Component/Console/Command/Command.php:224
    0.0171    6761920   8. DoctrineORMMappingClassMetadataFactory->getAllMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Tools/Console/Command/SchemaTool/AbstractCommand.php:53
    0.0172    6764016   9. DoctrineORMMappingClassMetadataFactory->getMetadataFor() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:131
    0.0172    6764064  10. DoctrineORMMappingClassMetadataFactory->loadMetadata() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:178
    0.0172    6764280  11. DoctrineORMMappingClassMetadataFactory->getParentClasses() /usr/local/zend/share/pear/Doctrine/ORM/Mapping/ClassMetadataFactory.php:254


[ReflectionException]     
Class Bug does not exist  

orm:schema-tool:create [--dump-sql]

由于您没有发布Bug.dcm.xml文件,我看不出您是否声明了您的类是正确的。但是查看xml文件名时,您忘记了为Bug类添加名称空间。如果你给你的Bug类命名为Foo,你的文件名应该是Foo.Bug.dcm.xml.

您需要做的另一件事是将choosen命名空间添加到您的条令类加载器中。就像您对Doctrine命名空间所做的那样。如果你使用名称空间Foo,它会看起来像这样:

$classLoader = new DoctrineCommonClassLoader('Foo', <<PATH_TO_FOO>>);
$classLoader->register();

替换<>到命名空间开始的路径。

如果这不能解决您的问题,请发布Bug.dcm.xml。

最新更新