環境
初書:2020/09/04
PC:macOS 10.15.6
php 7.4.9
Composer: v1.10.10
phpdotenv: v5.1
phpdotenvとは
.envファイルで用意した環境変数を簡単に扱えるようにしたもの。
https://github.com/vlucas/phpdotenv
インストール
※composerは設定済みとして話を進めていく
ターミナルで以下を実行する
% composer require vlucas/phpdotenv
envファイルの準備
適当な位置に.env
ファイルを用意し、設定したい環境変数を記述していく。
# 何かしらのIDとパスワード
ID="aa"
PASS="password"
envファイル内では上記のように、key="value"という書き方が基本になる。
あと#でコメントアウトができる。
phpで読み込む
<?php
declare(strict_types=1);
// ファイル名が.envではない場合は、createImmutableの第二引数にファイル名を入れる
Dotenv\Dotenv::createImmutable(__DIR__)->load();
echo $_ENV["ID"]; // aa
Dotenv\Dotenv::createImmutable(__DIR__)->load();で、$_ENV変数に.envの中身が読み込まれる。
__DIR__は、.envと読み込むフォルダが同じ場合。違う場所に置いている場合は、適時場所を記述する
調べてみると、Dotenv::createとかnew Dotenvを使っているサイトがあったけど、declareを使用している場合は引数が足りない&型が違うと言われ、実行できない。
あとは$_ENVを使って取得するだけ。
注意
別にphpdotenvの注意ではないけども。。
.envファイル自体は普通にアクセスできるし、text形式故に読み取れるので、本番環境ではhtaccessなどでアクセスを制御する必要がある。