博客列表 >tp5核心三问和配置项的读取操作

tp5核心三问和配置项的读取操作

Pengsir
Pengsir原创
2018年01月19日 16:42:03729浏览

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>';

    }
}



声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议