https://a.storyblok.com/f/270183/1368x665/83ad497503/25apr_dev-blog_enviormental-variables_sympony.jpg

symfony で PHP 環境変数を使う方法

最終更新日 April 17, 2025

所要時間:1 分

はじめに

環境変数 (env vars) は アプリケーションを設定できます。アプリケーションを設定できるようになります。このチュートリアルでは symfony のプロジェクトで環境変数を使う方法を説明します。

環境変数とパラメータを理解する

symfony は環境変数をデータベースのクレデンシャル、API キー、もしくはほかの機密情報もしくは環境固有の情報のような設定値を保存するために使います。これらの値は .envファイルで設定できます。環境変数がシステムもしくはアプリケーションレベルで値を定義するのに対して、パラメーターはサービスコンテナに保存され、環境変数を参照できます。

環境変数の設定

を使用している。.envファイル

symfony プロジェクトには環境変数を定義できる .envファイルで環境変数を定義できます:

# .env

VONAGE_API_KEY=your_api_key

VONAGE_API_SECRET=your_api_secret

また env.localファイルを作成することもできる。

# .env.local

VONAGE_API_KEY=your_production_api_key

VONAGE_API_SECRET=your_production_api_secret

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

あなたの .envまたは env.localファイルに APP_ENV.この設定は、実行時に読み込む設定ファイルを決定する。 prodに設定することができます(例えば、以下のようなPlatform-as-a-Serviceを使用している場合)。 Platform.sh), testPHPUnit や PHPStan のようなツールを使っている場合は UAT スタイルの環境、 そして最後に devそして最後にローカルの開発環境です。読み込んだ設定を取得するには、二通りの方法があります。

設定ファイル

symfony は設定ファイルのなかで %env(VAR_NAME)%構文を使います。たとえば config/packages/vonage.yaml:

Vonage:

    api_key: '%env(VONAGE_API_KEY)%'

    api_secret: '%env(VONAGE_API_SECRET)%'

サービス

で環境変数を指定することで、サービスに環境変数を注入できます。 config/services.yaml:

parameters:

    vonage.api_key: '%env(VONAGE_API_KEY)%'

    vonage.api_secret: '%env(VONAGE_API_SECRET)%'

そして serviceクラスで

namespace App\Service;

use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;

class VonageService

{

    private string $apiKey;

    private string $apiSecret;

    public function __construct(private 

ContainerBagInterface

 $config)

    {

       

$this->apiKey = $this->params->get('vonage.api_key');

$this->apiSecret = $this->params->get('vonage.api_secret');

    }

}

あるいは、PHPの getenv()関数を使うこともできます:

$apiKey = getenv('VONAGE_API_KEY');

$apiSecret = getenv('VONAGE_API_SECRET');

標準ライブラリにおいて、これは本質的に $_ENV[] Superglobalのラッパーにすぎません; しかしながら、環境変数を扱うためのより多機能なツールのセットを持つ symfony の設定を使うことが推奨されます。

環境変数の検証と正規化

symfony は env()プロセッサを提供します:

parameters:

    vonage_api_key: '%env(string:VONAGE_API_KEY)%'

    vonage_api_secret: '%env(string:VONAGE_API_SECRET)%'

環境変数とパラメータの使い分け

  • パラメータを使う。

  • 環境変数を使うAPIキーやシークレットなど、環境ごとに変わる値には環境変数を使う。

パフォーマンスの最適化

運用時のパフォーマンスを向上させるには、環境変数をコンパイル済みの PHP ファイルにダンプします:

composer dump-env prod

これは .env.local.phpファイルをパースせずに symfony が環境変数をロードできるようにします。 .envファイルを読み込むことができます。

デバッグ環境変数とパラメータ

現在の設定を調べるには、以下のコマンドを使用する:

bin/console debug:container --env-vars

bin/console debug:container --parameters

セキュリティへの配慮

  • ファイル内の機密データを .envファイル内の機密データをバージョン・コントロールにコミットしてはならない。

  • 使用方法 .env.localを使用し、実際の環境変数を使用して本番環境を設定します。

  • 環境変数を使用する前に検証する。

symfonyの環境とサーバー環境を理解する

  • symfony環境 (APP_ENV)はアプリケーションモードを定義します (たとえば dev, prod, test).

  • サーバー環境とは、アプリケーションを実行している物理マシンまたは仮想マシンのことです。

結論

環境変数を使うことで、symfony はハードコーディングすることなく、クリーンでセキュアに保ちながら、開発、テスト、運用のどのステージでもアプリを調整できるクールな方法を提供します。

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

シェア:

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

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