
LaravelでPHP環境変数を使用する方法
所要時間:3 分
この記事は2025年7月に更新されました。
環境変数は、Laravelで異なる環境(ローカル、ステージング、本番)間のコンフィギュレーション設定を管理するために不可欠です。Laravelはこれらの設定を .envファイルに保存し、機密データをバージョン管理から外します。これにより、アプリケーションをデプロイする際の柔軟性と安全性が確保されます。
このガイドでは、開発環境で環境変数を設定し使用する方法を説明します。 .envのようなマネージドホスティングプラットフォームで管理されるべきファイルがあるからです。 Platform.sh, Laravel Forgeまたは ララベルクラウド.
環境変数の設定
作成と使用.envファイル
Laravelにはデフォルトで .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ファイルを変更したら、コンフィギュレーション・キャッシュをクリアして変更を適用する:
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開発者ページ開発者が学び、コミュニティとつながるためのスペースです。つながりを維持し、進捗状況を共有し、最新の開発者向けニュース、ヒント、イベントを把握してください!