国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

GatewayWorker框架下 怎么能引用.env 配置文件呢

smile1

問(wèn)題描述

GatewayWorker框架下 怎么能引用.env 配置文件呢

為此你搜索到了哪些方案及不適用的原因

看了下webman有 但是沒(méi)找到GatewayWorker的

1565 3 0
3個(gè)回答

nitron

自己建一個(gè)

  • 暫無(wú)評(píng)論
admin

參考:thinkphp6的env

/app/Env.php

<?php

namespace app;

class Env
{
    /**
     * 環(huán)境變量數(shù)據(jù)
     * @var array
     */
    protected static $data = [];

    /**
     * 讀取環(huán)境變量定義文件
     * @access public
     * @param  string    $file  環(huán)境變量定義文件
     * @return void
     */
    public static function load($file)
    {
        self::set($_ENV);
        if(!is_file($file)){
            return;
        }
        $env = parse_ini_file($file, true);
        self::set($env);
        self::set(\getenv());
    }

    /**
     * 獲取環(huán)境變量值
     * @access public
     * @param  string    $name 環(huán)境變量名
     * @param  mixed     $default  默認(rèn)值
     */
    public static function get($name=null, $default = null)
    {
        if($name==null){
            return self::$data;
        }
        $name=strtoupper($name);
        $name = strtoupper(str_replace('.', '_', $name));
        if (isset(self::$data[$name])) {
            return  self::$data[$name];
        }
        return $default;
    }

    /**
     * 設(shè)置環(huán)境變量值
     * @access public
     * @param  string|array  $env   環(huán)境變量
     * @param  mixed         $value  值
     * @return void
     */
    public static function set($env, $value = null)
    {

        if (is_array($env)) {
            $env = array_change_key_case($env, CASE_UPPER);
            foreach ($env as $key => $val) {
                if (is_array($val)) {
                    foreach ($val as $k => $v) {
                        self::$data[$key . '_' . strtoupper($k)] = trim($v);
                    }
                } else {
                    self::$data[$key] = trim($val);
                }
            }
        } else {
            $name = strtoupper(str_replace('.', '_', $env));
            self::$data[$name] = trim($value);
        }
    }
}

/start.php

<?php
use Workerman\Worker;
ini_set('display_errors', 'on');
require_once __DIR__ . '/vendor/autoload.php';

if (method_exists(\app\Env::class, 'load')) {
    $loadfile=file_exists(__DIR__.DIRECTORY_SEPARATOR.'dev.env')?'dev.env':'.env';
    \app\Env::load($loadfile);
}

如何使用?

讀取env的 的某個(gè)字段
App_SecretKey=123456

// bussinessWorker 進(jìn)程
$worker = new BusinessWorker();
$worker->secretKey = Env::get('App.SecretKey', null);
powerbowen

自己搞個(gè)包或者自己寫一個(gè)

$envPath = '.env';
if(!file_exists($envPath))throw new \Exception("env is not set.");global $_ENV;$_ENV=parse_ini_file($envPath);function env($name) {global $_ENV;return isset($_ENV[$name]) ? $_ENV[$name] : null;}
var_dump(env('xxx'));
  • smile1 2022-12-08

    感謝 大佬

  • smile1 2022-12-08

    想請(qǐng)教下 這種一般在哪里進(jìn)行初始化呢, 是否需要配置自動(dòng)加載

  • powerbowen 2022-12-08

    不是大佬,我是放在入口文件里,然后就都能用了

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??