• TP v5中环境变量在项目中的应用


    环境变量,顾名思义就是在不同的系统环境,同一个变量的值可以有所不同。

    如开发环境、测试环境与正式环境下,数据库配置、静态资源文件Url前缀、缓存、各种key等配置都不相同,对于提交到仓库中的代码,理论上不应该将与环境相关的这些参数传进去。但怎样实现有所区分,各自维护呢?没有经历过团队协作开发和利用工具自动化部署代码的人应该不会理解其中的小痛苦。环境变量就是一个比较好的实现方式了。

    TP的v5中利用PHP对环境变量的读取以及模拟环境变量的支持,可以很好的实现这种需求。

    以下为引用http://www.kancloud.cn/manual/thinkphp5/189989

    在开发过程中,可以在应用根目录下面的.env来模拟环境变量配置,.env文件中的配置参数定义格式采用ini方式,例如:

    app_debug =  true
    app_trace =  true
    

    如果你的部署环境单独配置了环境变量,那么请删除.env配置文件,避免冲突。

    使用下划线分割定义配置参数名:

    database_username =  root
    database_password =  123456
    

    或者使用

    [database]
    username =  root
    password =  123456
    

    获取环境变量的值可以使用下面的两种方式获取:

    Env::get('database.username');
    Env::get('database.password');
    // 同时下面的方式也可以获取
    Env::get('database_username');
    Env::get('database_password');
    

    可以支持默认值,例如:

    // 获取环境变量 如果不存在则使用默认值root
    Env::get('database.username','root');
    

    可以直接在应用配置中使用环境变量,例如:

    return [
        'hostname'  =>  Env::get('hostname','127.0.0.1'),
    ];
    

    环境变量中设置的app_debug和app_trace参数会自动生效(优先于应用的配置文件),其它参数则必须通过Env::get方法才能读取。

    环境变量的配置方法在此不详述了。

  • 相关阅读:
    webapi之fiddler头设置
    ios---setContentOffset
    webapi参数处理get过个参数
    socket网络编程
    logging模块
    configparser模块(拷贝)
    hashlib模块--摘要算法
    异常处理
    面向对象拓展
    反射
  • 原文地址:https://www.cnblogs.com/x3d/p/6603441.html
Copyright © 2020-2023  润新知