##環境変数とは
変数:
ソースコード内に格納する変数。
環境変数:
OSに格納する変数。開発環境により値が異なる。ソースコードには、値が記載されないため値がコードから値がバレることはない。
$pass = 'asdf' → バレる。(変数)
$pass = $_PASSWORD → バレない(環境変数) ※OS内で $_PASSWORD = 'asdf'を定義。
##.envファイルについて
phpでは環境変数を使用する時**【.env】**を使用する。
.envファイルに記載された設定はOSに保存される。
例)
.env
PASSWORD=password
取り出し方
$_ENV['PASSWORD']
###phpdotenvについて
実際に.envに定義された環境変数をOSに反映させるためのライブラリ。
【インストール手順】
1) composer.jsonの設定
composer init
composer.json
#作成される。
{
"name": "root/html",
"require": {}
}
インストールする。
composer require vlucas/phpdotenv
composer.json
#反映される。
{
"name": "root/html",
"require": {
"vlucas/phpdotenv": "^5.2"
}
}
実際のインストール先はvendorディレクトリの中。
vendor / vlucas / phpdotenv / src 配下に格納される。
2).envの設定
ルート直下に .env を作成。
実際の環境変数を記載
.env
DB_HOST="db"
DB_USERNAME="user"
DB_PASSWORD="pass"
DB_DBNAME="books"
phpdotenvを用いて環境変数をロードする記載
#オートロードを読み込む。個別のライブラリを読み込まなくてすむ。
require __DIR__ . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
#( .env があるディレクトリを指定)
$dotenv->load();