要获得实体经理,我正在使用
$doctrine = Zend_Registry::get('doctrine');
$em = $doctrine->getEntityManager();
在application / Bootstrap.php中
public function _initAutoloaderNamespaces()
{
require_once APPLICATION_PATH . '/../library/Doctrine/Common/ClassLoader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$fmmAutoloader = new \Doctrine\Common\ClassLoader('Bisna');
$autoloader->pushAutoloader(array($fmmAutoloader, 'loadClass'), 'Bisna');
$classloader = new \Doctrine\Common\ClassLoader('Models', APPLICATION_PATH);
$classloader->register();
}
/**
* Set up sessions to be saved to the database.
* Begin or resume a session.
*/
protected function _initSaveSession()
{
if (strpos(APPLICATION_ENV, 'setup') !== false)
return;
$this->bootstrap('doctrine');
// We can use the same connection settings for Zend_Db_Adapter too!
// So less configuration, more flexibility.
$doctrine = $this->getResource('doctrine');
$entityManager = $doctrine->getEntityManager();
//Register Blob Type
Doctrine\DBAL\Types\Type::addType('blob', 'Doctrine\DBAL\Types\BlobType');
$entityManager->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('BLOB', 'blob');
$entityManager->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('ENUM', 'string');
$dbParameters = $entityManager->getConnection()->getParams();
// Hack
// Doctrine uses 'user' instead of 'username' for connection params
$dbParameters['username'] = $dbParameters['user'];
$db = Zend_Db::factory('PDO_MYSQL', $dbParameters);
Zend_Db_Table::setDefaultAdapter($db);
$config = array(
'name' => 'sessions',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime',
'db' => $db
);
//Tell Zend_Session to use your Save Handler
$savehandler = new Zend_Session_SaveHandler_DbTable($config);
$savehandler->setLifetime(3600)->setOverrideLifetime(true);
Zend_Session::setSaveHandler($savehandler);
Zend_Session::start();
}
protected function _initDoctrine2()
{
$this->bootstrap('doctrine');
}
在application / config / application.ini
中;------------------------------------------------------------------------------
; Doctrine Cache Configuration
; ------------------------------------------------------------------------------
; Points to default cache instance to be used. Optional is only one cache is defined
resources.doctrine.cache.defaultCacheInstance = default
; Cache Instance configuration for "default" cache
;resources.doctrine.cache.instances.default.adapterClass = "Doctrine\Common\Cache\MemcacheCache"
resources.doctrine.cache.instances.default.adapterClass = "Doctrine\Common\Cache\ArrayCache"
resources.doctrine.cache.instances.default.namespace = "Models"
resources.doctrine.cache.instances.default.options.servers.0.host = localhost
resources.doctrine.cache.instances.default.options.servers.0.port = 11211
resources.doctrine.cache.instances.default.options.servers.0.persistent = true
resources.doctrine.cache.instances.default.options.servers.0.retryInterval = 15
; ------------------------------------------------------------------------------
; Doctrine DBAL Configuration
; ------------------------------------------------------------------------------
; Points to default connection to be used. Optional if only one connection is defined
resources.doctrine.dbal.defaultConnection = default
; DBAL Connection configuration for "default" connection
resources.doctrine.dbal.connections.default.id = default
resources.doctrine.dbal.connections.default.eventManagerClass = "Doctrine\Common\EventManager"
resources.doctrine.dbal.connections.default.configurationClass = "Doctrine\DBAL\Configuration"
;resources.doctrine.dbal.connections.default.sqlLoggerClass = "Doctrine\DBAL\Logging\EchoSQLLogger"
; Database configuration
;resources.doctrine.dbal.connections.default.parameters.wrapperClass = ""
resources.doctrine.dbal.connections.default.parameters.driver = "pdo_mysql"
resources.doctrine.dbal.connections.default.parameters.dbname = "database_test"
resources.doctrine.dbal.connections.default.parameters.host = "localhost"
resources.doctrine.dbal.connections.default.parameters.port = 3306
resources.doctrine.dbal.connections.default.parameters.user = "root"
resources.doctrine.dbal.connections.default.parameters.password = "Tdatabase_password"
;resources.doctrine.dbal.connections.default.parameters.driverOptions.ATTR_USE_BUFFERED_QUERIES = true
doctrine.data_fixtures_path = APPLICATION_PATH "/configs/data/fixtures"
; ------------------------------------------------------------------------------
; Doctrine ORM Configuration
; ------------------------------------------------------------------------------
; Points to default EntityManager to be used. Optional if only one EntityManager is defined
resources.doctrine.orm.defaultEntityManager = default
; EntityManager configuration for "default" manager
resources.doctrine.orm.entityManagers.default.connection = default
resources.doctrine.orm.entityManagers.default.proxy.autoGenerateClasses = true
resources.doctrine.orm.entityManagers.default.proxy.namespace = "Models\Proxy"
resources.doctrine.orm.entityManagers.default.proxy.dir = APPLICATION_PATH "/Models/Proxy"
resources.doctrine.orm.entityManagers.default.metadataDrivers.0.adapterClass = "Doctrine\ORM\Mapping\Driver\AnnotationDriver"
resources.doctrine.orm.entityManagers.default.metadataDrivers.0.mappingNamespace = "Models"
resources.doctrine.orm.entityManagers.default.metadataDrivers.0.mappingDirs[] = APPLICATION_PATH "/Models"
resources.doctrine.orm.entityManagers.default.metadataDrivers.0.annotationReaderClass = "Doctrine\Common\Annotations\AnnotationReader"
resources.doctrine.orm.entityManagers.default.metadataDrivers.0.annotationReaderCache = default
如何添加除默认值以外的多个数据库连接以及如何在Entity中使用该连接并选择该特定实体管理器