GatewayWorker框架下 怎么能引用.env 配置文件呢
看了下webman有 但是没找到GatewayWorker的
自己建一个
参考:thinkphp6的env
/app/Env.php
<?php namespace app; class Env { /** * 环境变量数据 * @var array */ protected static $data = []; /** * 读取环境变量定义文件 * @access public * @param string $file 环境变量定义文件 * @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()); } /** * 获取环境变量值 * @access public * @param string $name 环境变量名 * @param mixed $default 默认值 */ 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; } /** * 设置环境变量值 * @access public * @param string|array $env 环境变量 * @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的 的某个字段 App_SecretKey=123456
App_SecretKey=123456
// bussinessWorker 进程 $worker = new BusinessWorker(); $worker->secretKey = Env::get('App.SecretKey', null);
感谢 大佬
自己搞个包或者自己写一个
$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'));
想请教下 这种一般在哪里进行初始化呢, 是否需要配置自动加载
不是大佬,我是放在入口文件里,然后就都能用了
自己建一个
参考:thinkphp6的env
/app/Env.php
/start.php
如何使用?
读取env的 的某个字段
App_SecretKey=123456
感谢 大佬
自己搞个包或者自己写一个
感谢 大佬
想请教下 这种一般在哪里进行初始化呢, 是否需要配置自动加载
不是大佬,我是放在入口文件里,然后就都能用了