laravelのクラスでenvに登録した環境変数を取得したいのですが、色々参考にしましたが正しい取得方法がわからず、envの正しい取得方法について、どうかご教授お願い致します。
現状はconfig/my-app.phpというファイルを作り、そこに取得したい環境変数を入れて取得しています。が、キャッシュがらみで、状況によってはconfig:cacheコマンドを実行する必要があります。
【Laravel】.envファイルの値を取得するではこの書き方はおすすめしないと書いてあり、以下のように書くのを進めています。こちらの方が良いのでしょうか?
$environment = App::environment();
ただ、この場合、API_KEYなど他の値の取得方法が解らず、、ご教授お願いできましたら幸いです。
また、色々とソースをみてみたところ$_SERVERで取得しているケースもありましたが、問題ないのでしょうか?
■envの値についてやりたいこと、ソース
envに登録してあるAPI_KEYや、API_URLをclassでとってきたいです。
アクセス修飾子privateを$api_keyや$api_tokenに指定し、この変数にAPI_KEYとAPI_TOKENの値を入れて、同じクラス内で使いまわしたいと考えています。
現状はconfig/my-app.phpというファイルを作り、そこに取得したい環境変数を入れて取得しています
試しに$_SERVERを使ってみると目的の値は取得できましたが、安全な方法でしょうか?
□TestServiceクラス
<?php namespace App\TestService; class TestService { private $api_key = ''; private $api_token = ''; public function __construct() { //configを経由 $my_env = config('my-app.API_KEY'); print_r($my_env);exit(); //////envのAPI_KEYが取得できました $my_env = $_SERVER; /////試しに$_SERVERを使ってみると目的の値は取得できました。安全な方法でしょうか? $api_key = $my_env['API_KEY']; $api_token = $my_env['API_TOKEN']; } } ?>
□.env
APP_ENV=staging APP_KEY=base64:xxxxxxx= APP_DEBUG=false APP_URL=http://localhost LOG_CHANNEL=stack LOG_LEVEL=debug CACHE_DRIVER=file CACHE_DRIVER_FILE_PATH=/tmp API_KEY=xxxxxxx API_URL=xxxxxxx API_TOPKEN=xxxxxx
□config/my-app.php
return [ 'API_KEY' => env('API_KEY', 'production'), ]
□こちら↓ではconfig('app.env')が正しいと言っておりますが
【Laravel】.envファイルの値の正しい取得方法【env関数を使うのは間違い】
大変初歩的なことで申し訳ありません。普段はサンプルソースを引っ張ってきて実装するくらいのレベルです。どうかご教授お願い致します。

回答1件
あなたの回答
tips
プレビュー