当前位置:首页 > PHP教程 > php高级应用 > 列表

关于PHP框架中.env文件的加载过程

发布:smiling 来源: PHP粉丝网  添加日期:2022-05-31 10:41:30 浏览: 评论:0 

现在很多框架使用根目录的.env文件来配置环境变量,php本身是不会去解析这个文件的,需要使用php代码读取和解析这个文件放入环境变量中。

例如查看thinkphp中.env文件的加载过程 , 使用下面这个strace命令查看fpm进程stat文件状态的过程。

strace $(pidof 'php-fpm'|sed 's/\([0-9]*\)/-p \1/g') -e stat -s 1024

返回的这条,就是在查看.env文件是否存在。

[pid 11692] stat("/data1/mailLog/public/phpdev/xxx/xxx/.env", 0x7fff6ba5f9f0) = -1 ENOENT (No such file or directory)

处理的代码是这几句:

  1. if (is_file(ROOT_PATH . '.env')) { 
  2.  
  3.     $env = parse_ini_file(ROOT_PATH . '.env', true); 
  4.  
  5.     foreach ($env as $key => $val) { 
  6.  
  7.         $name = ENV_PREFIX . strtoupper($key); 
  8.  
  9.         if (is_array($val)) { 
  10.  
  11.             foreach ($val as $k => $v) { 
  12.  
  13.                 $item = $name . '_' . strtoupper($k); 
  14.  
  15.                 putenv("$item=$v"); 
  16.  
  17.             } 
  18.  
  19.         } else { 
  20.  
  21.             putenv("$name=$val"); 
  22.  
  23.         } 
  24.  
  25.     } 
  26.  
  27. }

Tags: .env文件 PHP框架加载过程

分享到: