[Resolvido] Configurar Doctrine 2.x
<!--
I have a dream... e neste sonho eu consigo criar um EntityManager.
Comecei a ler o manual do doctrine 2.0 e não saí do capítulo 3 - configuração.
Baixei a versão 2.0. A estrutura dos arquivos é essa:
Doctrine
\Common
\DBAL
\ORM
\Symfony
Pus o Doctrine na pasta projetoORM e ficou assim
projetoORM
\Doctrine
\Entities
\Proxies
\Util
\Util\bootstrap.php
\Util\ConnectionFactory.php
index.php
-->
<?php
/ bootstrap.php /
require_once 'Doctrine\Common\ClassLoader.php';
$class_loade = new \Doctrine\Common\ClassLoader('\Doctrine\Common', 'Common');
$class_loade->register();
$class_loade = new \Doctrine\Common\ClassLoader('\Doctrine\DBAL', 'DBAL');
$class_loade->register();
$class_loade = new \Doctrine\Common\ClassLoader('\Doctrine\ORM', 'ORM');
$class_loade->register();
?>
<?php
/ -------> / require_once 'bootstrap.php'; # preciso dessa linha? Se preciso, coloco onde?
use Doctrine\ORM\EntityManager,
Doctrine\ORM\Configuration;
class ConnectionFactory {
private $entityManager = false;
private $connectionOptions = array(
'driver' => 'pdo_mysql',
'host' => 'localhost',
'user' => 'root',
'password' => '',
'dbname' => 'test'
);
private function getContext() {
$config = new Configuration;
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache());
$driverImpl = $config->newDefaultAnnotationDriver(dirname(dirname(__FILE__)) . '\Entities');
$config->setMetadataDriverImpl($driverImpl);
$config->setQueryCacheImpl($cache);
$config->setProxyDir(dirname(dirname(__FILE__)) . '\Proxies');
$config->setProxyNamespace('DoctrineProject/Proxies');
return $config;
}
public static function getInstance() {
if (!$entityManager) {
/* o erro acontece aqui --->*/ $entityManager = EntityManager::create($this->connectionOptions, $this->getContext());
}
return $entityManager;
}
}
?>
<!-- index.php -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
require_once 'Project/Util/ConnectionFactory.php';
$em = ConnectionFactory::getInstance();
?>
</body>
</html>
/*
O erro é esse:
"Fatal error: Class 'Doctrine\ORM\EntityManager' not found in E:\xampp\htdocs\Doctrine\Project\Util\ConnectionFactory.php on line 33"
Ele não conseguiu localizar a classe EntityManage dentro da pasta ORM, embora ela esteja lá. Beleza! por quê?
Alguém tem uma teoria?
*/
Discussão (4)
Carregando comentários...