Я новичок в Zend Framework 2. Я работаю в Zend Framework 2 Project. Я хочу использовать доктрину 2 для этого проекта.Динамическое подключение нескольких баз данных в zend 2 doctrine 2
Я хочу соединить несколько динамических баз данных для моего проекта, я уже подключен к нескольким базам данных в моем проекте, Но я изо всех сил, чтобы соединить его динамически, Пожалуйста, найти свой файл local.php ниже, путь местного .php файл
/var/www/xxxx/yyyy/config/autoload/local.php
local.php
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=default_db_name;host=localhost',
'username' => 'default_user',
'password' => 'default_password',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => 'default_user',
'password' => 'default_password',
'dbname' => 'default_db_name',
),
),
'client_1' => array(
'driverClass' => 'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => 'user_1',
'password' => 'password_1',
'dbname' => 'client_1',
),
),
),
),
'doctrine' => array(
'connection' => array(
// Default DB connection
'orm_default' => array(
'driverClass' => 'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => 'devuser',
'password' => 'default_password',
'dbname' => 'default_db_name',
'driver' => 'pdo_mysql',
),
),
'client_1' => array(
'driverClass' => 'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => 'user_1',
'password' => 'password_1',
'dbname' => 'client_1',
'driver' => 'pdo_mysql',
),
),
),
// Entity Manager instantiation settings
'entitymanager' => array(
'orm_default' => array(
'connection' => 'orm_default',
'configuration' => 'orm_default',
),
'oliversweeney' => array(
'connection' => 'client_1',
'configuration' => 'client_1',
),
),
// 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,
),
'client_1' => array(
'metadata_cache' => 'array',
'query_cache' => 'array',
'result_cache' => 'array',
'hydration_cache' => 'array',
'generate_proxies' => true,
),
),
),
'zf-oauth2' => array(
'storage' => 'ZF\\OAuth2\\Adapter\\PdoAdapter',
'db' => array(
'dsn_type' => 'PDO',
'dsn' => 'mysql:host=localhost;dbname=default_db_name',
'username' => 'default_user',
'password' => 'default_password',
),
),
);
Теперь я подключаю к базе данных client_1 б у следующая кодировка,
пожалуйста найти ниже файл
Имяфайла: NotificationLogFactory.php Путь файла: /var/www/xxxx/yyyyy/module/Application/src/Application/Factory/NotificationLogFactory.php
<?php
namespace Application\Factory;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Application\Service\NotificationLogService;
class NotificationLogFactory implements FactoryInterface
{
public function createService(ServiceLocatorInterface $serviceLocator)
{
$em = $serviceLocator->get('doctrine.entitymanager.client_1');
return new NotificationLogService($em);
}
}
Мой вопрос заключается в том, что, как соединить динамические несколько баз данных?
Пример: client_1, client_2, client_3, client_4 ......
пожалуйста, дайте мне знать, если вы имеете любой вопрос для моей проблемы ....