Created
October 29, 2012 22:02
-
-
Save danielalvarenga/3976832 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Bd_manager_doctrine extends CI_Controller{ | |
public $entities = ''; | |
public function __construct(){ | |
require_once "/../models/Entities/Admin.php"; | |
require_once "/../models/Entities/Log.php"; | |
require_once "/../models/Entities/Usuario.php"; | |
require_once "/../models/Entities/PremiosUsuario.php"; | |
require_once "/../models/Entities/Aposta.php"; | |
require_once "/../models/Entities/Time.php"; | |
require_once "/../models/Entities/Pais.php"; | |
require_once "/../models/Entities/Jogo.php"; | |
require_once "/../models/Entities/Rodada.php"; | |
require_once "/../models/Entities/Campeonato.php"; | |
require_once "/../models/Entities/RendimentoTime.php"; | |
require_once "/../models/Entities/PontuacaoRodada.php"; | |
require_once "/../models/Entities/PontuacaoGeral.php"; | |
require_once "/../models/Entities/ContadorAposta.php"; | |
$this->entities = array( | |
$this->doctrine->em->getClassMetadata('Admin'), | |
$this->doctrine->em->getClassMetadata('Log'), | |
$this->doctrine->em->getClassMetadata('Pais'), | |
$this->doctrine->em->getClassMetadata('Time'), | |
$this->doctrine->em->getClassMetadata('Campeonato'), | |
$this->doctrine->em->getClassMetadata('RendimentoTime'), | |
$this->doctrine->em->getClassMetadata('Rodada'), | |
$this->doctrine->em->getClassMetadata('Jogo'), | |
$this->doctrine->em->getClassMetadata('Usuario'), | |
$this->doctrine->em->getClassMetadata('Aposta'), | |
$this->doctrine->em->getClassMetadata('ContadorAposta'), | |
$this->doctrine->em->getClassMetadata('PremiosUsuario'), | |
$this->doctrine->em->getClassMetadata('PontuacaoRodada'), | |
$this->doctrine->em->getClassMetadata('PontuacaoGeral') | |
); | |
} | |
public function index(){ | |
} | |
public function create_schema(){ | |
$this->doctrine->tool->createSchema($this->entities); // cria novo banco de dados | |
} | |
public function update_schema(){ | |
$this->doctrine->tool->updateSchema($this->entities); // atualiza o banco de dados | |
} | |
public function drop_schema(){ | |
$this->doctrine->tool->dropSchema($this->entities); // remove banco de dados | |
} | |
} | |
?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Doctrine\Common\ClassLoader, | |
Doctrine\ORM\Configuration, | |
Doctrine\ORM\EntityManager, | |
Doctrine\Common\Cache\ArrayCache, | |
Doctrine\DBAL\Logging\EchoSQLLogger, | |
Symfony\Component\Console; | |
use Doctrine\ORM\Tools\Setup; | |
//O comentário abaixo serve para que a IDE (NetBeans 7.2 por exemplo) consiga fazer a leitura do framework e mostrar dicas de código. | |
/** | |
* @property \Doctrine\ORM\EntityManager $em Gerenciador de Entidade | |
*/ | |
class Doctrine | |
{ | |
public $em = ''; | |
public $tool = ''; | |
public function __construct() | |
{ | |
// Set up class loading. You could use different autoloaders, provided by your favorite framework, | |
// if you want to. | |
require_once APPPATH . 'third_party/DoctrineORM-2.3.0/libraries/Doctrine/Common/ClassLoader.php'; | |
require_once APPPATH . "third_party/DoctrineORM-2.3.0/libraries/Doctrine/ORM/Tools/Setup.php"; | |
Doctrine\ORM\Tools\Setup::registerAutoloadDirectory(APPPATH . "third_party/DoctrineORM-2.3.0/libraries/"); | |
$doctrineClassLoader = new ClassLoader('Doctrine', APPPATH . 'third_party//libraries'); | |
$doctrineClassLoader->register(); | |
$proxiesClassLoader = new ClassLoader('Proxies', APPPATH . 'models/proxies'); | |
$proxiesClassLoader->register(); | |
// Set up caches | |
$config = new Configuration; | |
$cache = new ArrayCache; | |
$config->setMetadataCacheImpl($cache); | |
$driverImpl = $config->newDefaultAnnotationDriver(array(APPPATH . 'models/Entities')); | |
$config->setMetadataDriverImpl($driverImpl); | |
$config->setQueryCacheImpl($cache); | |
$config->setQueryCacheImpl($cache); | |
// Proxy configuration | |
$config->setProxyDir(APPPATH . '/models/proxies'); | |
$config->setProxyNamespace('Proxies'); | |
// Set up logger | |
#$logger = new EchoSQLLogger; | |
#$config->setSQLLogger($logger); | |
$config->setAutoGenerateProxyClasses(TRUE); | |
require APPPATH . 'config/database.php'; | |
// Database connection information | |
$connectionOptions = array( | |
'driver' => 'pdo_mysql', | |
'user' => $db['default']['username'], | |
'password' => $db['default']['password'], | |
'host' => $db['default']['hostname'], | |
'dbname' => $db['default']['database'], | |
'charset' => 'utf8', | |
'driverOptions' => array(1002 => 'SET NAMES utf8') // evita erros de acentuação na minha base de dados (se criada com “utf8_general_ci” e o projeto na IDE com codificação UTF-8) | |
); | |
// Enforce connection character set. This is very important if you are | |
// using MySQL and InnoDB tables! | |
//Doctrine_Manager::connection()->setCharset('utf8'); | |
//Doctrine_Manager::connection()->setCollate('utf8_general_ci'); | |
// Create EntityManager | |
$this->em = EntityManager::create($connectionOptions, $config); | |
$this->tool = new \Doctrine\ORM\Tools\SchemaTool($this->em); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment