環境
- windows10
- DockerDesktop for Win 3.5.x
- phpdotenv 5.4
- PHP 8.x
- VsCode
- gitbash 2.32.0.1
phpdotenvの何がうれしいのか
プロジェクトのセキュリティを高めることができる。
具体的には、パスワードやAPIキーなどを.envで環境変数化し、.gitignoreを併用することで、ソースコードに直接記述せずに済むことにより、秘匿情報を保護することが可能。
なお、Laravelでの環境変数はenv()により取得できるが、これもphpdotenvをベースに構成されている。
'url' => env('DATABASE_URL'),
イメージ
秘匿情報は.envに記述する
WEBHOOK_URL = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
.envで指定した環境変数を取り出して使用する
Sample.php
<?php
use Dotenv\Dotenv;
// createImmutable()内で.envのパスを指定する
$dotenv = Dotenv::createImmutable(__DIR__ . '../');
$dotenv->load();
// $ENV[]で環境変数を取り出すことが可能
$webhookUrl = $_ENV['WEBHOOK_URL'];
設定手順
composerでphpdotenvをインストールする
composer require vlucas/phpdotenv
あとは使う側のクラス等で取り出して使用する
Sample.php
<?php use Dotenv\Dotenv;
// createImmutable()内で.envのパスを指定する
$dotenv = Dotenv::createImmutable(__DIR__ . '../');
$dotenv->load();
// $ENV[]で環境変数を取り出すことが可能
$webhookUrl = $_ENV['WEBHOOK_URL'];
一番重要なこととして、.gitignoreに.envを追加するのを忘れずに..
.env
ちなみに、Laravelでは環境変数を取得したりするためclass(vendor\laravel\framework\src\Illuminate\Support\Env.php)があり、いちいちDotenv::createImmutableなどをしなくても環境変数を取り出せるようになっています。
まとめ
いかがでしたでしょうか。本記事では、phpdotenvでPHPプロジェクトの秘匿情報を環境変数として管理することでセキュリティ性を高める方法について紹介しています。秘匿情報を誤ってGithub等のソース管理サービスにアップしないためにも、とても有効な機能ですのでぜひ参考にしてみてください。