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

时间:2015-05-26 11:32:42

标签: zend-framework2 configuration-files application-settings apigility

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

return array(
    'db' => array(
        'adapters' => array(
            ...
            'DbAdapter_FooBar' => array(),
            ...
        ),
    ),
    ...
);

并在/config/autoload/local.php

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\'',
                ),
            ),
            ...
        ),
    ),
    ...
);

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

(如何)可以配置Apigility,数据库适配器设置是否存储在自定义配置文件中?如何/在何处设置这些文件?

1 个答案:

答案 0 :(得分:0)

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

配置按以下顺序合并:

  • 模块的array方法
  • 返回的getConfig()
  • config/autoload/*.global.php - 全局自动加载文件
  • config/autoload/*.local.php - 本地自动加载文件
  • 功能界面描述的方法 - get*Config()