Zend framework2 如何在Apigility中定义备用数据库适配器配置文件?

Zend framework2 如何在Apigility中定义备用数据库适配器配置文件?,zend-framework2,configuration-files,application-settings,laminas-api-tools,Zend Framework2,Configuration Files,Application Settings,Laminas Api Tools,在Apigility驱动的Zend Framework 2应用程序中,通过Apigility管理UI创建数据库适配器,默认情况下,其设置保存在/config/autoload/global.php中 在/config/autoload/local.php中 在我正在处理的应用程序中,配置文件结构不同于ZF2标准,例如,数据库设置有单独的配置文件:/config/autoload/mydb.global.php和/config/autoload/mydb.local.php 如何以数据库适配器设置

在Apigility驱动的Zend Framework 2应用程序中,通过Apigility管理UI创建数据库适配器,默认情况下,其设置保存在/config/autoload/global.php中

在/config/autoload/local.php中

在我正在处理的应用程序中,配置文件结构不同于ZF2标准,例如,数据库设置有单独的配置文件:/config/autoload/mydb.global.php和/config/autoload/mydb.local.php


如何以数据库适配器设置存储在自定义配置文件中的方式配置Apigility?如何/在何处设置这些文件?

可以在多个位置提供各种组件的配置,但所有配置都通过Zend\Stdlib\ArrayUtils::merge方法递归合并到一个大型配置文件中。由于配置是递归合并的,因此将配置添加到合并配置数组的顺序对于避免意外覆盖非常重要

配置按以下顺序合并:

模块的getConfig方法返回的数组 config/autoload/*.global.php-全局自动加载文件 config/autoload/*.local.php-本地自动加载文件 特性接口-get*Config描述的方法
return array(
    'db' => array(
        'adapters' => array(
            ...
            'DbAdapter_FooBar' => array(),
            ...
        ),
    ),
    ...
);
return array(
    'db' => array(
        'adapters' => array(
            ...
            'DbAdapter_FooBar' => array(
                'charset' => 'UTF-8',
                'database' => 'asdf',
                'driver' => 'PDO_Mysql',
                'hostname' => 'asdf',
                'username' => 'asdf',
                'password' => 'asdf',
                'port' => '1234',
                'driver_options' => array(
                    1002 => 'SET NAMES \'UTF8\'',
                ),
            ),
            ...
        ),
    ),
    ...
);