1、一个商城系统中有商品数据库和会员数据库,如何访问这两个数据库呢?
答:利用模块配置完成,商品模块加载商品数据库的配置文件访问,会员数据库用会员数据库的DSN的配置文件访问
2、如何切换开发环境与生产环境?
答:通过场景配置 config.php中指定:app_status参数来改变配置文件加载。
3、如何优化配置文件
答:可以通过在入口文件中使用CONF_PATH常量自定义配置目录
一、配置目录
配置文件的存放目录。
二、配置格式
.php、.xml、.json、.yaml、.ini
三、配置加载
1、将配置文件加载到系统中。
2、配置文件会自动加载到系统中
3、配置文件的优先级
惯例配置<应用配置<扩展配置<场景配置<模块配置<动态配置
惯例配置:thinkphp\convention.php
应用配置:application\config.php
扩展配置:application\extra\目录下的所有文件
场景配置:config.php中通过指定:app_status参数改变配置文件加载
模块配置:application\当前模块\config.php
动态配置:一般指在控制器中做的配置,使用Config::set('配置项名称','配置项值');
Config::set('default_return_type','Html');
四、读取配置
读取配置文件中的内容
1、读取所有配置:Config::get();
Config::get();
2、读取一项配置:Config::get('配置项目1');
Config::get('default_return_type');
五、动态配置
一般是在控制器中设置配置项
Config::set('配置项名称','配置项的值');
Config::set('default_return_type','Html');
批量设置:Config::set(配置项目数组);或:config(配置项目数组);
$config=[
'default_return_type'=>'HTML',
'default_ajax_return'=>'JSON'
];
Config::set($config);
六、独立配置(扩展配置)
指分离的多个配置文件
七、配置作用域
相当于给配置加了一个命名空间,作用:用于配置的隔离
1、加载配置:Config::load('配置文件的绝对路径','配置项名称','作用域的名称');
class Index { public function index() { Config::set('default_return_type','Html','range'); $res=Config::get('','range'); dump($res); } }
八、环境变量配置
在项目根目录下用.env文件做配置
配置内容:.ini风格;配置项名称=配置项值
九:优化配置文件
可以通过在入口文件中使用CONF_PATH常量自定义配置目录
[ 应用入口文件 ]
定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
自定义配置目录
define('CONF_PATH', __DIR__ . '/../config/');
加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';