Blogger Information
Blog 61
fans 0
comment 0
visits 63227
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
tp5核心三问和配置项的读取操作
Pengsir
Original
753 people have browsed it

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

    }
}



Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post