環境変数の構成の簡単な方法を設定する.env
8502 ワード
何ですか.env
通過するEnvファイルは、環境変数をロードする、
例
メリット把.EnvはGITの を避けることができる.Apache/nginxプロファイルを変更することなく、環境変数 を設定できます.php_を ENV環境変数値の移植と共有を容易にする 互換サーバ内蔵サーバとCLIランチャー composerでインストールする
使用方法
ルートディレクトリの下に配置された
次に作成します.env.exampleファイルをプロジェクトにチェックインします.ここで、設定と環境変数は、空にしたり、重要でないデータを設定したりすることができます.この方法は人々にこれらのデータが必要であることを知らせるが、本当の環境のデータは提供しない.
次の行のコードを使用してアプリケーションをロードできます.Envファイル:
定義変数はすべてgetenvメソッドでアクセス可能である、スーパーグローバル変数
フレームワークのRequestクラスを使用して、これらの変数にアクセスすることもできます(フレームワークを使用する場合).
埋め込み変数
1つの変数に1つの環境変数を埋め込むことは可能であり、重複を減らすのに有用である.
不変
デフォルトでは、Dotenvは環境変数が不変であると考えている.すなわち、設定を変更することはできない.
環境変数を可変に設定するには、次の関数を使用します.
...同様に、次の関数を使用して変更しないようにすることもできます.
要求変数を設定する必要があります
Dotenvを使用すると、このENV変数を設定する必要があることを指定できます.設定しないと異常が放出されます.これは人々にとって非常に有用であり、プログラムがこの変数を欠くと実行できない.
次の構文を使用します.
または配列を定義します.
ENV変数が欠落している場合、DotenvはRuntimeExceptionを放出します.
許容値
上の異常情報を見たかもしれませんが、環境変数がこのルールを遵守するように可能な範囲値を設定することができます.
同様に、環境変数がこのリストにない場合、似たような例外情報が表示されます.
コメント
#を使用して文字をコメントできます.E.g.
コメントの使用
開発者がコードライブラリをクローンすると手動でコピーするための追加のマニュアルを受け取ります.env....名前を変更します.Envは、自分たちの値(または他の開発者から他の敏感な値)を追加する.
phpdotenvは開発者環境の構築に用いるが、生産環境では用いるべきではない.本番環境では、要求を使用するたびに使用する必要がなく、真実の変数を設定する必要がある.Envファイルをリロードする.
これは、Vagrant、chef、Puppet、またはPagodabox、Herokuなどのクラウドホストによる手動での導入ツールの自動化によって実現することができる.
リファレンス
https://segmentfault.com/a/1190000010886175
.env
ファイルは、グローバル環境プロファイルとしてプロジェクトルートディレクトリの下にあります.通過するEnvファイルは、環境変数をロードする、
getenv()
,$_ENV
および$_SERVER
によって自動的に呼び出すことができる.これはPHPバージョンのRuby dotenvです.例
//
APP_ENV=local
// , , 。
APP_DEBUG=true
// , php artisan key:generate 。
APP_KEY=
//
APP_URL=http://localhost
// , 。
CACHE_DRIVER=file
// , SESSION。
SESSION_DRIVER=file
// , 。
QUEUE_DRIVER=sync
// Redis key-value , , 。
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
//
DB_HOST=127.0.0.1//
DB_PORT=3306//
DB_DATABASE=homestead//
DB_USERNAME=homestead//
DB_PASSWORD=secret//
メリット
.gitignore
ファイルに加入し、.env
ファイル中の機密情報の漏洩.htaccess
に追加する必要はありません.value値curl -s http://getcomposer.org/installer | php
php composer.phar require vlucas/phpdotenv
使用方法
.env
ファイルは通常、バージョン管理には含まれない、機密のAPI Keyまたはパスワードを含む可能性がある.環境変数の定義(敏感でない定義)を必要とするすべてのプロジェクトは、自分たちが定義した環境変数または共同開発に含む環境変数を含む.env.example
ファイルを作成する必要がある.プロジェクト協力開発者は独立して複製することができる.env.exampleは.env
と名前を変更し、正しいローカル環境構成に変更し、パスワードkeyを格納するか、必要な値を提供する.この使用方法では、.env
ファイルを.gitignore
ファイルに追加すべきであり、プロジェクトの協力者によってチェックイン/チェックアウトされることは永遠にない.この方法は、バージョン管理において機密性のないAPI Keyまたはパスワードが存在することを確保し、セキュリティリスクを低減する.また、開発環境における構成は、協力開発者に通知することは決してない.ルートディレクトリの下に配置された
.env
ファイルを追加し、.env
ファイルが.gitignore
に追加され、CVSにチェックインしないことを確認します.S3_BUCKET=dotenv
SECRET_KEY=souper_seekret_key
次に作成します.env.exampleファイルをプロジェクトにチェックインします.ここで、設定と環境変数は、空にしたり、重要でないデータを設定したりすることができます.この方法は人々にこれらのデータが必要であることを知らせるが、本当の環境のデータは提供しない.
S3_BUCKET=devbucket
SECRET_KEY=abc123
次の行のコードを使用してアプリケーションをロードできます.Envファイル:
Dotenv::load(__DIR__);
定義変数はすべてgetenvメソッドでアクセス可能である、スーパーグローバル変数
$_ENV
および$_SERVER
でアクセス可能である.$s3_bucket = getenv('S3_BUCKET');
$s3_bucket = $_ENV['S3_BUCKET'];
$s3_bucket = $_SERVER['S3_BUCKET'];
フレームワークのRequestクラスを使用して、これらの変数にアクセスすることもできます(フレームワークを使用する場合).
$s3_bucket = $request->env('S3_BUCKET');
$s3_bucket = $request->getEnv('S3_BUCKET');
$s3_bucket = $request->server->get('S3_BUCKET');
埋め込み変数
1つの変数に1つの環境変数を埋め込むことは可能であり、重複を減らすのに有用である.
{$…}
を使用して環境変数e.gをラップ.BASE_DIR=/var/webroot/project-root
CACHE_DIR={$BASE_DIR}/cache
TMP_DIR={$BASE_DIR}/tmp
不変
デフォルトでは、Dotenvは環境変数が不変であると考えている.すなわち、設定を変更することはできない.
環境変数を可変に設定するには、次の関数を使用します.
Dotenv::makeMutable();
...同様に、次の関数を使用して変更しないようにすることもできます.
Dotenv::makeImmutable();
要求変数を設定する必要があります
Dotenvを使用すると、このENV変数を設定する必要があることを指定できます.設定しないと異常が放出されます.これは人々にとって非常に有用であり、プログラムがこの変数を欠くと実行できない.
次の構文を使用します.
Dotenv::required('DATABASE_DSN');
または配列を定義します.
Dotenv::required(array('DB_HOST', 'DB_NAME', 'DB_USER', 'DB_PASS'));
ENV変数が欠落している場合、DotenvはRuntimeExceptionを放出します.
Required environment variable missing or value not allowed: 'DB_USER', 'DB_PASS'
許容値
上の異常情報を見たかもしれませんが、環境変数がこのルールを遵守するように可能な範囲値を設定することができます.
Dotenv::required('SESSION_STORE', array('Filesystem', 'Memcached'));
同様に、環境変数がこのリストにない場合、似たような例外情報が表示されます.
Required environment variable missing or value not allowed: 'SESSION_STORE'
コメント
#を使用して文字をコメントできます.E.g.
# this is a comment
VAR="value" # comment
VAR=value # comment
コメントの使用
開発者がコードライブラリをクローンすると手動でコピーするための追加のマニュアルを受け取ります.env....名前を変更します.Envは、自分たちの値(または他の開発者から他の敏感な値)を追加する.
phpdotenvは開発者環境の構築に用いるが、生産環境では用いるべきではない.本番環境では、要求を使用するたびに使用する必要がなく、真実の変数を設定する必要がある.Envファイルをリロードする.
これは、Vagrant、chef、Puppet、またはPagodabox、Herokuなどのクラウドホストによる手動での導入ツールの自動化によって実現することができる.
リファレンス
https://segmentfault.com/a/1190000010886175