现在,如果你的配置文件中已经有一个名为‘Solar_Example’的配置组了,那么这个组的配置值会覆盖类定义中的默认参数。假设你的配置文件如下:
<?php
$config = array();
// ...
$config['Solar_Example']['opt_3'] = 'dib';
// ...
return $config;
当你实例化Solar_Example对象的时候,配置文件中的参数会覆盖类中对应的默认值,其它参数不受影响:
<?php
$example = Solar::factory('Solar_Example');
/**
*
* The values of $example->_config are now:
*
* 'opt_1' => 'foo'
* 'opt_2' => 'bar'
* 'opt_3' => 'dib' // from the config file
*/
最后,如果你给Solar::factory()的第二个参数指定了一个配置数组,那么该数组的值会覆盖类定义的默认值和配置文件Solar.config.php中的值。
<?php
$config = array('opt_2' => 'gir');
$example = Solar::factory('Solar_Example', $config);
/**
* The values of $example->_config are now:
*
* 'opt_1' => 'foo' // as defined by the class
* 'opt_2' => 'gir' // from the Solar::factory() instantiation config
* 'opt_3' => 'dib' // from the config file
*/