laravel logo and development related image to the right

LaravelでPHP環境変数を使用する方法

最終更新日 March 20, 2025

所要時間:3 分

この記事は2025年7月に更新されました。

環境変数は、Laravelで異なる環境(ローカル、ステージング、本番)間のコンフィギュレーション設定を管理するために不可欠です。Laravelはこれらの設定を .envファイルに保存し、機密データをバージョン管理から外します。これにより、アプリケーションをデプロイする際の柔軟性と安全性が確保されます。

このガイドでは、開発環境で環境変数を設定し使用する方法を説明します。 .envのようなマネージドホスティングプラットフォームで管理されるべきファイルがあるからです。 Platform.sh, Laravel Forgeまたは ララベルクラウド.

環境変数の設定

作成と使用.envファイル

Laravelにはデフォルトで .env.exampleファイルがデフォルトで含まれています。環境変数の使用を開始するには、サンプルファイルをコピーして新しい .envファイルを作成します:

cp .env.example .env

次に .envファイルを開き、アプリケーションの設定を定義する:

APP_NAME=VonageVerifyApp
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost

VONAGE_API_KEY=your_api_key
VONAGE_API_SECRET=your_api_secret

ファイルを変更した後 .envファイルを変更したら、コンフィギュレーション・キャッシュをクリアして変更を適用する:

php artisan config:clear

Laravelで環境変数にアクセスする

を使用している。env()ヘルパー

Laravelは env()ヘルパーを提供します:

$apiKey = env('VONAGE_API_KEY');

重要:重要 env()を設定ファイルでのみ使用してください。アプリケーションのロジックをクリーンで保守しやすくするために、代わりにLaravelの config()ヘルパーで取得します。Laravelは環境変数ファイルをキャッシュし、ファイル内の変数が変更されても自動的にキャッシュを無効にしないので、これは特に重要です。

Laravel設定ファイルの使用

Laravelのコンフィギュレーション・ファイル(Laravelの config/ディレクトリにあります)は、環境設定を管理する最良の方法です。Laravelのconfigサービスコンテナは、configディレクトリ内の各ファイルを自動的に読み込みます。そこで、VonageキーとAPIシークレットを追加するには、config内に新しいファイルを作成し、名前を vonage.php.これでキーとAPIシークレットを含む配列が返されるはずです。

例えば config/services.phpの環境変数を参照することができます。 の環境変数を参照できます。:

'vonage' => [
    'api_key' => env('VONAGE_API_KEY'),
    'api_secret' => env('VONAGE_API_SECRET'),
],

アプリケーションでこれらの値を取得するには、次のようにする:

$apiKey = config('vonage.api_key');
$apiSecret = config('vonage.api_secret');

Verify APIで環境変数を使う

環境変数が適切に設定されたので、Vonage Verify APIをLaravelアプリケーションに統合することができます。手動で行う方法を紹介しますが、アプリをビルドする際には、サービスコンテナ内でアプリを自動的に起動するサービスを書きたいでしょう。この方法については Laravelドキュメント.

例検証リクエストの送信

use Vonage\Client;
use Vonage\Client\Credentials\Basic;

use Vonage\Verify2\Request\SMSRequest;
$apiKey = config('vonage.api_key');
$apiSecret = config('vonage.api_secret');

$credentials = new Basic($apiKey, $apiSecret);
$client = new Client($credentials);

$verification = new SmsRequest('+14155550123', 'acme-company');

$response = $client->verify()->start($verification);

echo "Request ID: " . $response->getRequestId();

例検証コードの確認

$requestId = 'VERIFY_REQUEST_ID';
$code = 'VONAGE_VERIFY_CODE; // Code entered by the user

try {
$response = $client->verify2()->check($requestId, $code);
echo $response;} catch ($exception) {
echo $exception->getMessage();
}

環境固有の設定を行う

Laravelでは、環境ごとに設定をカスタマイズすることができます。例えば config/logging.phpでは、環境に応じて異なるログレベルを設定できます。env()ヘルパー関数の第2引数はデフォルトなので、どこで設定しているのか確認してください:

'log_level' => env('LOG_LEVEL', 'debug'),

ログレベルを .envファイルでログレベルを定義します:

LOG_LEVEL=debug  # Local Development
LOG_LEVEL=error  # Production

この方法を使えば、コードを変更することなくアプリケーションの動作を変更することができる。

設定キャッシュによるパフォーマンスの向上

本番環境では、パフォーマンスを向上させるために構成設定をキャッシュしてください:

php artisan config:cache

このコマンドを実行すると、Laravelは .envファイルからの読み込みを停止し、代わりにキャッシュされた設定を使用します。もし .envに変更を加える場合は、適用する前にキャッシュをクリアしてください:

php artisan config:clear

セキュリティのベストプラクティス

機密データを安全に保つために、以下のベストプラクティスに従ってください:

  • 決して .envファイルに追加します。 .gitignore.

  • ローカル用、ステージング用、本番用で別々の環境ファイルを使用する。

  • アプリケーション・コードにAPIキーやシークレットをハードコードしないこと。

  • 使用方法 config()の代わりに env()を使用します。

  • AWS Secrets Manager、HashiCorp Vault、またはDocker/Kubernetes環境管理のような秘密管理ツールを、本番環境のセキュリティのために検討しよう。

環境変数のトラブルシューティング

環境変数が正しく読み込まれていない場合は、クリアして再キャッシュしてみてください:

php artisan config:clear  
php artisan config:cache  

結論

それで終わりです!Laravelで環境変数を使用すると、機密データを安全に保ちながら、コンフィギュレーション設定を効率的に管理することができます。

質問や共有したいことがありますか?Vonageコミュニティ VonageコミュニティSlackまたは 開発者向けニュースレターでフォローしてください。 X(旧Twitter)YouTubeチャンネル YouTubeチャンネルビデオチュートリアルを購読する。 LinkedInのVonage開発者ページ開発者が学び、コミュニティとつながるためのスペースです。つながりを維持し、進捗状況を共有し、最新の開発者向けニュース、ヒント、イベントを把握してください!

シェア:

https://a.storyblok.com/f/270183/384x384/b68093ec17/diana-pham.png
Diana Phamデベロッパー・アドボケイト

ダイアナはVonageのデベロッパー・アドボケイト。新鮮な牡蠣を食べるのが好き。