Я пытаюсь загрузить свои классы схемы из Yaml в Doctrine 2.0, и я наткнулся на стену.К сожалению, документация Doctrine 2.0 ужасна.Я думал, что документация Doctrine 1.2 была дерьмом ... 2.0 - это просто слова.Вот это да.В любом случае, вот что у меня есть:
require_once(\config\paths\CLASS_LOADER);
$loader = new \Doctrine\Common\ClassLoader('Doctrine', \config\paths\PHP_LIBRARIES);
$loader->register();
$cache = new \Doctrine\Common\Cache\ArrayCache();
$config = new \Doctrine\ORM\Configuration;
$config->setMetadataCacheImpl($cache);
$driver = new \Doctrine\ORM\Mapping\Driver\YamlDriver(\config\paths\MODELS);
$config->setMetadataDriverImpl($driver);
$config->setQueryCacheImpl($cache);
$config->setProxyDir(\config\paths\PROXIES);
$config->setProxyNamespace('lib\orm\proxies');
$config->setAutoGenerateProxyClasses(true);//@PRODUCTION - set this false
$connectionOptions = array(
'driver' => \config\db\DRIVER,
'user' => \config\db\LOGIN,
'password' => \config\db\PASSWORD,
'dbname' => \config\db\TABLE,
'host' => \config\db\HOST
);
$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);
Все пути верны.Все константы, переданные в массив $ connectionOptions, являются правильными.Путь к моделям - это папка, заполненная файлами, такими как ClaimStatus.dcm.yml, которые содержат такое содержимое, как:
orm\ClaimStatus:
type: entity
table: claim_status
id:
id:
type: integer
generator:
strategy: identity
fields:
name:
type: string
code:
type: string
Все же после того, как все сказано и сделано, и менеджер сущностей готов, я делаю:
$em->find('orm\\Category',1);
но все, что я получаю, это:
Warning: class_parents() [function.class-parents]: Class orm\Category does not exist and could not be loaded in /usr/share/php/Doctrine/ORM/Mapping/ClassMetadataFactory.php on line 222
Fatal error: Uncaught exception 'ReflectionException' with message 'Class orm\Category does not exist' in /usr/share/php/Doctrine/ORM/Mapping/ClassMetadata.php on line 67