Blogger Information
Blog 34
fans 0
comment 0
visits 33679
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
tp5之配置技巧
Serendipity-Ling
Original
1252 people have browsed it

此次的tp5 版本为ThinkPHP5.0


配置文件名  描述


app.php    应用配置   | cache.php    缓存配置  |  cookie.php    Cookie配置 |   database.php    数据库配置   |

log.php    日志配置   | session.php    Session配置   | template.php    模板引擎配置  |  trace.php    页面Trace配置   |  paginate.php    分页配置    



  1. 获取配置

    要使用Config类,首先需要在你的类文件中引入

use think\Config;

然后就可以使用下面的方法读取某个配置参数的值:

echo Config::get('配置参数1');

如果你需要读取某个一级配置的所有配置参数,可以使用

Config::pull('app');

或者使用

Config::get('app.');

读取所有的配置参数:

dump(Config::get());

判断是否存在某个设置参数:

Config::has('配置参数2');

读取二级配置时

Config::get('database.type')  //采用点连接,可以读取到一级配置database下的二级配置type

2.使用助手函数来获取配置

注意 config() 全小写

config(); //得到所有配置
config('?配置参数2'); //判断是否存在配置时
config('app.name1.name2') //点语法,支持获取多级配置参数值,直接使用(必须从一级开始写)

3.动态配置

//动态设置
Config::set('Site_Name','www.php.cn');
config('Site_Name','www.php.com'); //助手函数动态设置
//批量设置
$array = ['orderNum'=>'1234',
           'orderGood'=>'xiaomi 5x'
    ];
 config($array);   //助手函数动态设置

$res = config();
dump($res);

4.扩展配置

在application\extra目录下新建一个自己的配置文件myextra.php

<?php
/**
 * 扩展配置。。练习
 */

return [
    'site_name'=>'php.ccn'
];

然后在application\index\controller\index.php下获取一下自己刚刚的扩展配置

<?php
namespace app\index\controller;
use think\Config;
class Index
{
    public function index()
    {
//        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>';

        //扩展配置
        $res = Config::get();
        dump($res);
    }
}

5.配置优先级

惯例配置《应用配置《扩展配置《场景配置《模块配置《动态配置

惯例配置:thinkphp\convention.php

应用配置:application\config.php,  可以覆盖惯例配置中的配置

扩展配置:application\extra目录下创建自己的配置文件

场景配置:config.php中通过指定:app_status参数改变配置文件加载

模块配置:application\指定目录下(比如在index下新建一个config.php)\config.php

动态配置:一般指在控制器中用config::set('配置项名称','配置项值')

6.配置作用域

在application目录下新建一个配置文件my_config.php

<?php
return [
      'test'=>'lzh'
];

然后加载该配置在index.php

Config::load(APP_PATH.'my_config.php','test','user');//三个参数分别为该配置的绝对路径;配置项名称;配置项作用域
$res = Config::get('test','user');
dump($res);

7.环境变量配置

在项目根目录下用.env文件做配置

配置内容:.ini风格;配置项名称=配置项值

<?php
namespace app\index\controller;
use think\Config;
use think\Env;
class Index
{
    public function index()
    {
        $res = Env::get('myenv');
        dump($res);
    }
}

8.优化配置

可以通过在入口文件中使用CONF_PATH常量自定义配置目录 

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

// [ 应用入口文件 ]

// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
//自定义配置加载
//设置这个之后关于配置的加载就不读取上面应用目录下的配置文件了
//需要新建一个CONFIG目录
define('CONF_PATH',__DIR__ . '/../CONFIG/');

// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';


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