問題描述
我將配置文件中的代碼粘貼到
I pasted the code from the configuration.md file to
module.config.php
module.config.php
'doctrine' => array(
'connection' => array(
'orm_crawler' => array(
'driverClass' => 'DoctrineDBALDriverPDOMySqlDriver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => 'root',
'password' => 'root',
'dbname' => 'crawler',
'driverOptions' => array(
1002 => 'SET NAMES utf8'
),
)
)
),
'configuration' => array(
'orm_crawler' => array(
'metadata_cache' => 'array',
'query_cache' => 'array',
'result_cache' => 'array',
'driver' => 'orm_crawler',
'generate_proxies' => true,
'proxy_dir' => 'data/DoctrineORMModule/Proxy',
'proxy_namespace' => 'DoctrineORMModuleProxy',
'filters' => array()
)
),
'driver' => array(
'Crawler_Driver' => array(
'class' => 'DoctrineORMMappingDriverAnnotationDriver',
'cache' => 'array',
'paths' => array(
__DIR__ . '/../src/Crawler/Entity'
)
),
'orm_crawler' => array(
'class' => 'DoctrineORMMappingDriverDriverChain',
'drivers' => array(
'CrawlerEntity' => 'Crawler_Driver'
)
),
),
'entitymanager' => array(
'orm_crawler' => array(
'connection' => 'orm_crawler',
'configuration' => 'orm_crawler'
)
),
'eventmanager' => array(
'orm_crawler' => array()
),
'sql_logger_collector' => array(
'orm_crawler' => array(),
),
'entity_resolver' => array(
'orm_crawler' => array()
),
),
```
模塊.php
public function getServiceConfig()
{
return array(
'factories' => array(
'doctrine.authenticationadapter.orm_crawler' => new DoctrineModuleServiceAuthenticationAdapterFactory('orm_crawler'),
'doctrine.authenticationstorage.orm_crawler' => new DoctrineModuleServiceAuthenticationStorageFactory('orm_crawler'),
'doctrine.authenticationservice.orm_crawler' => new DoctrineModuleServiceAuthenticationAuthenticationServiceFactory('orm_crawler'),
'doctrine.connection.orm_crawler' => new DoctrineORMModuleServiceDBALConnectionFactory('orm_crawler'),
'doctrine.configuration.orm_crawler' => new DoctrineORMModuleServiceConfigurationFactory('orm_crawler'),
'doctrine.entitymanager.orm_crawler' => new DoctrineORMModuleServiceEntityManagerFactory('orm_crawler'),
'doctrine.driver.orm_crawler' => new DoctrineModuleServiceDriverFactory('orm_crawler'),
'doctrine.eventmanager.orm_crawler' => new DoctrineModuleServiceEventManagerFactory('orm_crawler'),
'doctrine.entity_resolver.orm_crawler' => new DoctrineORMModuleServiceEntityResolverFactory('orm_crawler'),
'doctrine.sql_logger_collector.orm_crawler' => new DoctrineORMModuleServiceSQLLoggerCollectorFactory('orm_crawler'),
'doctrine.mapping_collector.orm_crawler' => function (endServiceManagerServiceLocatorInterface $sl) {
$em = $sl->get('doctrine.entitymanager.orm_crawler');
return new DoctrineORMModuleCollectorMappingCollector($em->getMetadataFactory(), 'orm_crawler_mappings');
},
'DoctrineORMModuleFormAnnotationAnnotationBuilder' => function(endServiceManagerServiceLocatorInterface $sl) {
return new DoctrineORMModuleFormAnnotationAnnotationBuilder($sl->get('doctrine.entitymanager.orm_crawler'));
},
),
);
}
我收到以下錯(cuò)誤:
C:xamppvhostszf2-tradevendorzendframeworkzendframeworklibraryendServiceManagerServiceManager.php:529
留言:
ZendMvcControllerPluginManager::get was unable to fetch or create an instance for getServiceManager
我做錯(cuò)了什么?請(qǐng)幫忙.
What am I doing wrong? Please help.
問候馬修
推薦答案
Mac,歡迎使用 stackoverflow!您不需要為每個(gè)連接分別定義自定義工廠.DoctrineORMModule 已經(jīng)為我們處理了這項(xiàng)工作.
Mac, welcome to stackoverflow! You don't need to define custom factories for each connection respectively. DoctrineORMModule already handles this job for us.
當(dāng)您需要實(shí)體管理器時(shí),通過在別名中使用它們的名稱從服務(wù)定位器實(shí)例中獲取它,如下所示:
When you need the entity managers, get it from service locator instance by using their names in the alias like this:
$this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
或
$this->getServiceLocator()->get('doctrine.entitymanager.orm_alternative');
我正在分享我當(dāng)前應(yīng)用程序的數(shù)據(jù)庫配置之一,該配置當(dāng)前同時(shí)使用 PostgreSQL 和 MySQL 連接.
I'm sharing one of my current application's database configuration which currently uses both PostgreSQL and MySQL connections.
<?php
return array(
'doctrine' => array(
'connection' => array(
// Default DB connection
'orm_default' => array(
'driverClass' => 'DoctrineDBALDriverPDOPgSqlDriver',
'params' => array(
'host' => '1.2.3.4',
'user' => 'pdbuser',
'port' => '5432',
'password' => '****',
'dbname' => 'mydb',
'driver' => 'pdo_pgsql',
),
),
// Alternative DB connection
'orm_alternative' => array(
'driverClass' => 'DoctrineDBALDriverPDOMySqlDriver',
'params' => array(
'host' => '4.5.6.7',
'user' => 'dbuser',
'port' => '3306',
'password' => '****',
'dbname' => 'mydb',
'driver' => 'pdo_mysql',
),
),
),
// Entity Manager instantiation settings
'entitymanager' => array(
'orm_default' => array(
'connection' => 'orm_default',
'configuration' => 'orm_default',
),
'orm_alternative' => array(
'connection' => 'orm_alternative',
'configuration' => 'orm_alternative',
),
),
// Use array cache locally, also auto generate proxies on development environment.
'configuration' => array(
'orm_default' => array(
'metadata_cache' => 'array',
'query_cache' => 'array',
'result_cache' => 'array',
'hydration_cache' => 'array',
'generate_proxies' => true,
),
'orm_alternative' => array(
'metadata_cache' => 'array',
'query_cache' => 'array',
'result_cache' => 'array',
'hydration_cache' => 'array',
'generate_proxies' => true,
),
),
),
);
您可以輕松地將此配置與您的配置合并.
You can easily merge this configuration with yours.
希望有幫助.
這篇關(guān)于Zend Framework 2 和 Doctrine 2 - 多個(gè)數(shù)據(jù)庫的配置的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!