加入收藏 | 设为首页 | 会员中心 | 我要投稿 揭阳站长网 (https://www.0663zz.cn/)- 机器学习、行业智能、决策智能、云计算、AI应用!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-06-30 09:47:26 所属栏目:PHP教程 来源:互联网
导读:现在很多框架使用根目录的.env文件来配置环境变量,php本身是不会去解析这个文件的,需要使用php代码读取和解析这个文件放入环境变量中。 例如查看thinkphp中.env文件的加载过程 , 使用下面这个strace命令查看fpm进程stat文件状态的过程。 strace $(pidof php-
  现在很多框架使用根目录的.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)
 
  处理的代码是这几句:
 
  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");
   
          }
   
      }
   
  }
 

(编辑:揭阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读