0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Drupalでdotenvを使う

Last updated at Posted at 2024-08-11

はじめに

dotenvは環境変数を読み込むために用いられるライブラリです。例えばPHPだとphpdotenvが有名です。

今回はDrupaldotenvを使用する方法についてまとめます。

なぜdotenvを使うのか

なぜdotenvを使うのかというと

  • 環境変数のハードコーディングを避けるため
    • セキュリティの観点でよろしくない
  • 環境の切り替え(例えば開発環境から本番環境)の際に環境変数の設定を楽にする

といった理由が挙げられます。

早速準備してみる

今回はDrupalで提供されているdotenvを使用します。

環境

最新版の1.2.xを使用する場合、以下の環境を用意しておく必要があります。

  • PHP8.0以上
  • Drupal10

インストール

  1. drupal/dotenvをcomposerを使ってinstallします。
composer require 'drupal/dotenv:^1.2'

drupal/dotenvではsymfonyのdotenvをインストールする必要があるので、こちらもインストールします。

composer require symfony/dotenv

ここで注意していただきたいのがsymfony/dotenvの最新版v7.1.3(2024/08/11時点)ではdrupal/dotenvに対応していないためv6.4をインストールするようにしてください。


作成したDrupalプロジェクトのルートにload.environment.phpを追加し、以下のように記述します。

<?php

use Symfony\Component\Dotenv\Dotenv;

(new Dotenv())->usePutenv()->bootEnv(DRUPAL_ROOT . '/../.env', 'dev', ['test'], true);

こちらのファイルでは先ほどインストールしたsymfony/dotenvを用いて環境変数の読み込みを行います。.envがない場合は.env.distが読み込まれます。


続いてcomposer.jsonに以下の内容を追記し、load.environment.phpをautoloadします。

"autoload": {
    "files": ["load.environment.php"]
}

最後に以下のコマンドを実行します。

composer update --lock
composer dump-autoload

使用方法

任意のphpファイルで$ENV['HOGE'] で環境変数を読み込むことができます。

例)

APP_ENV=dev
<?php

echo $_ENV['APP_ENV']; //dev

また.envにスペース(余白)を入れないように注意してください。

//OK
APP_ENV=dev

//NG
APP_ENV = dev

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?