Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Zend Framework 2中生成具有多个数据库连接的Doctrine 2实体_Php_Mysql_Sql Server_Doctrine Orm_Oci8 - Fatal编程技术网

Php 在Zend Framework 2中生成具有多个数据库连接的Doctrine 2实体

Php 在Zend Framework 2中生成具有多个数据库连接的Doctrine 2实体,php,mysql,sql-server,doctrine-orm,oci8,Php,Mysql,Sql Server,Doctrine Orm,Oci8,对于web应用程序,我必须使用3个独立的数据库: MySQL用于所有应用程序逻辑,如登录 用于插入记录的MSSQL服务器 用于插入记录的Oracle服务器 现在我已经阅读了很多教程和手册来配置这些数据库,所以现在看起来是这样的: doctrine.global.php return array( 'doctrine' => array( 'connection' => array( 'orm_default' => array(

对于web应用程序,我必须使用3个独立的数据库:

  • MySQL用于所有应用程序逻辑,如登录
  • 用于插入记录的MSSQL服务器
  • 用于插入记录的Oracle服务器
现在我已经阅读了很多教程和手册来配置这些数据库,所以现在看起来是这样的:

doctrine.global.php

return array(
'doctrine' => array(
    'connection' => array(
        'orm_default' => array(
            'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
            'params' => array(
                'host' => '123.123.123.123',
                'port' => '3306',
                'dbname' => 'db_name',
            ),
        ),
              'orm_oracle' => array(
                  'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver',
                  'params' => array(
                      'host' => '321.321.321.321', 
                      'port' => '1521',
                      'dbname' => 'something',
                      'driver' => 'oci8',
                      'servicename' => 'something', 
                  ),
              ),
              'orm_microsoft' => array(
                  'driverClass' => 'Doctrine\DBAL\Driver\SQLSrv\Driver',
                  'params' => array(
                      'host' => '231.231.231.231', 
                      'port' => '1433',
                      'dbname' => 'something',
                      'driver' => 'sqlsrv',
                  ),
              ),
     )
)
);
'doctrine' => array(
'driver' => array(
    __NAMESPACE__ . '_driver' => array(
        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
        'cache' => 'array',
        'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities')
        ),
    'orm_default' => array(
        'drivers' => array(
            __NAMESPACE__ . '\Entities' => __NAMESPACE__ . '_driver'
            )
        ),
    'oracle_driver' => array(
        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
        'cache' => 'array',
        'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities\Oracle')
        ),
    'orm_oracle' => array(
        'drivers' => array(
            __NAMESPACE__ . '\Entities\Oracle' => 'oracle_driver'
            )
        ),
    'microsoft_driver' => array(
        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
        'cache' => 'array',
        'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities\Microsoft')
        ),
    'orm_microsoft' => array(
        'drivers' => array(
            __NAMESPACE__ . '\Entities\Microsoft' => 'microsoft_driver'
            )
        )
    )
)
doctrine.local.php*

return array(
'doctrine' => array(
    'connection' => array(
        'orm_default' => array(
            'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
            'params' => array(
                'user' => 'brportal',
                'password' => '27607097b4',
                ),
            ),
        //Alternative DB connection
        'orm_oracle' => array(
            'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver',
            'params' => array(
                'user' => 'joost',
                'password' => '4b58tL8DFv7G',
            ),
        ),  
        'orm_microsoft' => array(
            'driverClass' => 'Doctrine\DBAL\Driver\SQLSrv\Driver',
            'params' => array(
                'user' => 'joost',
                'password' => '4b58tL8DFv7G',
            ),
        ),
    ),
    'entitymanager' => array(
        'orm_default' => array(
            'connection'    => 'orm_default',
            'configuration' => 'orm_default',
        ),
        'orm_oracle' => array(
            'connection'    => 'orm_oracle',
            'configuration' => 'orm_oracle',
        ),
        'orm_microsoft' => array(
            'connection'    => 'orm_microsoft',
            'configuration' => 'orm_microsoft',
        ),
    ),

    // 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_oracle' => array(
            'metadata_cache' => 'array',
            'query_cache' => 'array',
            'result_cache' => 'array',
            'hydration_cache' => 'array',
            'generate_proxies' => true,
        ),
        'orm_microsoft' => array(
            'metadata_cache' => 'array',
            'query_cache' => 'array',
            'result_cache' => 'array',
            'hydration_cache' => 'array',
            'generate_proxies' => true,
        ),
    ),
)
);
Module.php

return array(
'doctrine' => array(
    'connection' => array(
        'orm_default' => array(
            'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
            'params' => array(
                'host' => '123.123.123.123',
                'port' => '3306',
                'dbname' => 'db_name',
            ),
        ),
              'orm_oracle' => array(
                  'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver',
                  'params' => array(
                      'host' => '321.321.321.321', 
                      'port' => '1521',
                      'dbname' => 'something',
                      'driver' => 'oci8',
                      'servicename' => 'something', 
                  ),
              ),
              'orm_microsoft' => array(
                  'driverClass' => 'Doctrine\DBAL\Driver\SQLSrv\Driver',
                  'params' => array(
                      'host' => '231.231.231.231', 
                      'port' => '1433',
                      'dbname' => 'something',
                      'driver' => 'sqlsrv',
                  ),
              ),
     )
)
);
'doctrine' => array(
'driver' => array(
    __NAMESPACE__ . '_driver' => array(
        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
        'cache' => 'array',
        'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities')
        ),
    'orm_default' => array(
        'drivers' => array(
            __NAMESPACE__ . '\Entities' => __NAMESPACE__ . '_driver'
            )
        ),
    'oracle_driver' => array(
        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
        'cache' => 'array',
        'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities\Oracle')
        ),
    'orm_oracle' => array(
        'drivers' => array(
            __NAMESPACE__ . '\Entities\Oracle' => 'oracle_driver'
            )
        ),
    'microsoft_driver' => array(
        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
        'cache' => 'array',
        'paths' => array(__DIR__ . '\..\src\\' . __NAMESPACE__ . '\Entities\Microsoft')
        ),
    'orm_microsoft' => array(
        'drivers' => array(
            __NAMESPACE__ . '\Entities\Microsoft' => 'microsoft_driver'
            )
        )
    )
)
但是现在,我真的希望有一种简单的方法(重新)生成mssql和oracle数据库实体(注释)。它已经可以用于MySQL数据库,但我无法找到如何使用
doctor模块orm:convert-mapping
指定数据库连接

我想知道有没有人能帮我

提前谢谢各位

附言:我已经读过:

归根结底,ZF2 DoctrineORM模块不支持它。有一个问题

同时,有一个模块提供了一个垫片模块,该模块添加了--em选项

您尝试过:条令模块orm:convert mapping--connection=orm\u oracle吗?没有,我没有尝试过,但是,我也没有看到它作为选项列出。但是我会尝试的,谢谢你的回复幸运的是,它的反应是受欢迎的:[RuntimeException]“--connection”选项不存在。所以你的Oracle和Microsoft实体是你的MySql实体的子文件夹?同时是否有其他解决方案?我建议,在将该功能添加到DoctrineORM之前,您可以使用条令模块扩展来获得一些功能