使用Doctrine2时出现自动加载问题

时间:2011-09-09 02:19:57

标签: doctrine-orm

CLI-config.php中

<?php

require_once 'Doctrine/Common/ClassLoader.php';

$path = dirname(dirname(dirname(__FILE__)));

$classLoader = new \Doctrine\Common\ClassLoader('Entities', __DIR__);
$classLoader->register();

$classLoader = new \Doctrine\Common\ClassLoader('Proxies', __DIR__);
$classLoader->register();

$config = new \Doctrine\ORM\Configuration();
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);
$config->setProxyDir(__DIR__ . '/Proxies');
$config->setProxyNamespace('Proxies');
$driver = new \Doctrine\ORM\Mapping\Driver\YamlDriver($path . '/doctrine2/default/yml');
$config->setMetadataDriverImpl($driver);

require_once $path . '/database.php';
$db = new DATABASE_CONFIG;

$connectionOptions = array(
    'driver' => 'pdo_pgsql',
    'host' => $db->default['host'],
    'user' => $db->default['login'],
    'password' => $db->default['password'],
    'dbname' => $db->default['database'],
);

$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);

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

通过这些设置,我可以使用以下命令成功生成yml和实体:

doctrine2 orm:convert-mapping --from-database yml yml

doctrine2 orm:generate-entities Entities /

执行命令“doctrine2 orm:validate-schema”时,它显示以下错误:

[ReflectionException]

XXX类不存在

但我可以在Entities文件夹中找到XXX.php。我试图添加名称空间实体,但它仍然无法找到模型。也许我错过了什么?

1 个答案:

答案 0 :(得分:1)

好吧,我找到了答案。只需将命令更改为

即可

doctrine2 orm:convert-mapping --namespace =“Entities \” - from-database yml yml

doctrine2 orm:generate-entities。

doctrine2 orm:validate-schema