1.一个商场系统中有商品数据库和会员数据库,如何访问这两个数据库呢?
答:1.1可以通过在入口文件中使用CONF_PATH常量自定义配置目录(目录名自定义例如:config与application同级下) 程序会加载这个自定义配置目录
// [ 应用入口文件 ]
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
//这是自定义配置目录
//define('CONF_PATH',__DIR__ . '/../my_config/');
1.2.新建一个与application同级的目录如:config(可自定义)
1.3.解决一个系统下访问两个数据库的问题:在config目录下可新建index模块,再新建一个config文件,把application的config复制过来,再在config目录下新建menber模块,再新建一个config 文件,把application的config复制过来,这样的话可实现一个系统下访问两个数据库
总结:就是自定义一个与application同级的目录,创建两个模块,两模块里复制粘贴系统的数据库即可
2.如何切换开发环境与生产环境?
答:利用场景配置:config.php中通过改变:app_status参数改变配置文件加载
2.1先在application下的config配置中,找到应用模式状态'app_status'=>'',改成'app_status'=>'自定义名如:dev'
2.2在application下新建dev.php文件
2.3再把database.php文件全选复制过来,改服务器地址:'hostname'=>''即可
这样就可以实现切换开发环境与生产环境了。
3.如何优化配置文件
答:3.1通过在入口文件,自定义配置目录的方式,指定配置文件目录,来优化配置文件。
difine('CONF_PATH',__DIR__.'/../config/');
3.2在config目录下建一个config文件,把application下的config文件复制过来,即可
配置读取示例:
<?php namespace app\index\controller; use think\Config; use think\Env; class Index { public function index() { // 第一块: //1.加载所有配置 // $res = Config::get(); // 1.1加载一项配置 // $res = Config::get('default_return_type'); // 1.2判断配置项是否存在 // $res = Config::has("default_return_type"); // 1.3读取二级配置项 // $res = Config::get('database.type'); // 使用助手函数 小写的config // 1.4加载所有配置 // $res=config(); // 1.5加载一项配置 // $res = config('default_return_type'); // 1.6读取二级配置项 // $res = config('database.type'); // dump($res); // 第二块: // 2.动态设置配置项 // Config::set('my_site_name','www.php.cn'); // 2.1使用助手函数设置配置项 // config('my_site_name1','www.php.cn1'); // 2.2批量设置配置项 // $config=['order_no'=>'1234567890','money'=>1000]; // Config::set($config); // config::set($config); // $res = Config::get(); // dump($res); // 第三块: // 3.扩展配置(独立配置被废弃) // config::set('default_return_type','Html'); // $res = Config::get(); // 第四块: // 4.配置优先级 // Config::set('default_return_type','Html'); // $res = Config::get(); // 第五块: // 5.配置作用域 // Config::load(APP_PATH.'my_config.php','test','ppp'); // $res = Config::get('','ppp'); // 第六块: // 环境变量配置 // .env环境配置 // $res = Env::get('myenv'); // 第七块: // 自定义配置 $res = Config::get(); dump($res); // return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_bd568ce7058a1091"></thinkad>'; } }