.envから変数を取得するには、phpdotenvが必要である。

 

.envファイルの内容ってgetenv()で取得すると思うんですが、

それって、環境変数を取得するように、

何もライブラリとか入れずに取得できると思ってました。

 

答え

デフォルト状態で、getenv()より取得できる環境変数は

phpinfo()ででる $_ENV['XXX'] だけみたい。

.envファイルで設定した変数を取得するには、

phpdotenvを使う必要がある。

 

 

■デフォルト状態

$ cat .env
TOKEN=token_123
$ vi get_env.php 
<?php

var_dump('PATH: ' . getenv('PATH'));  
//"PATH: /Users/XXXXXX/.pyenv/shims:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

var_dump('TOKEN: ' .getenv('TOKEN'));  
//"TOKEN: " 取得できない(X_X)

 

 

■ phpdotenv導入後

$ composer require vlucas/phpdotenv
$ vi get_env.php
<?php
var_dump('PATH: ' . getenv('PATH'));  
//"PATH: /Users/XXXXXX/.pyenv/shims:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" 

var_dump('TOKEN: ' .getenv('TOKEN'));  
//"TOKEN: token_123"  取得できた\(^^)/