thinkphp不讀取.env文件的鍵對值


第一:$_ENV會為空,其原因通常是php的配置文件php.ini的配置項為:

;variables_order
;Default Value: “EGPCS”
;Development Value: “GPCS”
;Production Value: “GPCS”


要想讓$_ENV的值不為空:

;variables_order
Default Value: “EGPCS”
;Development Value: “GPCS”
;Production Value: “GPCS”

第二:

Env不顯示的問題,需要在base.php中 putenv的同時,將數據也寫入$_ENV,就可以解決了

打開thinkphp目錄下的base.php文件修改。

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

namespace think;

use \think\Env;
// ThinkPHP 引導文件
// 1. 加載基礎文件
require __DIR__ . '/base.php';

if (is_file(ROOT_PATH . '.env')) {
    $env = parse_ini_file(ROOT_PATH . '.env', true);

    foreach ($env as $key => $val) {
        $name = ENV_PREFIX . strtoupper($key);

        if (is_array($val)) {
            foreach ($val as $k => $v) {
                $item = $name . '_' . strtoupper($k);
                putenv("$item=$v");
            }
        } else {
            putenv("$name=$val");
            //加入這一句
            $_ENV[$name]=$val;
        }
    }
}

// 2. 執行應用
App::run()->send();

.env在application同級目錄,文件格式為

status='dev'
[database]

hostname = localhost

database = vxianfeng

username = root

password = root

hostport = 3306

prefix = vxf_

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM