teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

内容修正

2021/07/29 02:03

投稿

t-yknow
t-yknow

スコア4

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  [【Laravel】.envファイルの値を取得する](https://qiita.com/Akrosg/items/05a7200b8947868f2e45)ではこの書き方はおすすめしないと書いてあり、以下のように書くのを進めています。こちらの方が良いのでしょうか?
5
5
  $environment = App::environment();
6
+ ただ、この場合、API_KEYなど他の値の取得方法が解らず、、ご教授お願いできましたら幸いです。
6
7
 
7
8
  また、色々とソースをみてみたところ$_SERVERで取得しているケースもありましたが、問題ないのでしょうか?
8
9
 

3

お恥ずかしながらやっと理解が進み、環境変数が取得できたので、正しい方法が知りたく内容を変更しました

2021/07/29 02:03

投稿

t-yknow
t-yknow

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- laravel envの値が取得できない
1
+ laravel envの環境変数の正しい取得方法
body CHANGED
@@ -1,12 +1,18 @@
1
- laravelのクラスでenvに登録した環境変数を取得したいのですが、config('app.env')と書くとstagingが取得されるだけで目的の値が出てきません。また、色々参考にしましたが正しい取得方法がわからず、envの正しい取得方法について、どうかご教授お願い致します。
1
+ laravelのクラスでenvに登録した環境変数を取得したいのですが、色々参考にしましたが正しい取得方法がわからず、envの正しい取得方法について、どうかご教授お願い致します。
2
+ 現状はconfig/my-app.phpというファイルを作り、そこに取得したい環境変数を入れて取得しています。が、キャッシュがらみで、状況によってはconfig:cacheコマンドを実行する必要があります。
2
3
 
4
+ [【Laravel】.envファイルの値を取得する](https://qiita.com/Akrosg/items/05a7200b8947868f2e45)ではこの書き方はおすすめしないと書いてあり、以下のように書くのを進めています。こちらの方が良いのでしょうか?
5
+ $environment = App::environment();
6
+
7
+ また、色々とソースをみてみたところ$_SERVERで取得しているケースもありましたが、問題ないのでしょうか?
8
+
3
9
  ■envの値についてやりたいこと、ソース
4
10
  envに登録してあるAPI_KEYや、API_URLをclassでとってきたいです。
5
11
  アクセス修飾子privateを$api_keyや$api_tokenに指定し、この変数にAPI_KEYとAPI_TOKENの値を入れて、同じクラス内で使いまわしたいと考えています。
6
- config('app.env')で取得できる思ったのですがstagingなってます。config('app.env')は.env内の値を取得するのではないでょうか?
12
+ 現状はconfig/my-app.phpいうファイルを作りそこ取得環境変数入れて取得しています
7
13
  試しに$_SERVERを使ってみると目的の値は取得できましたが、安全な方法でしょうか?
8
- また、.env内のAPP_ENV=stagingの値を削除してみたところ、productionが取得されました。
9
14
 
15
+
10
16
  □TestServiceクラス
11
17
  ```
12
18
  <?php
@@ -19,8 +25,9 @@
19
25
  public function __construct()
20
26
  {
21
27
  //configを経由
28
+ $my_env = config('my-app.API_KEY');
22
- $my_env = config('app.env');  /////ここprint_rしてみるとstagingになってしいます
29
+ print_r($my_env);exit();  //////envのAPI_KEYが取得した
23
-                                 $my_env = $_SERVER; /////試しに$_SERVERを使ってみると目的の値は取得できました。安全な方法でしょうか?
30
+                 $my_env = $_SERVER; /////試しに$_SERVERを使ってみると目的の値は取得できました。安全な方法でしょうか?
24
31
 
25
32
  $api_key = $my_env['API_KEY'];
26
33
  $api_token = $my_env['API_TOKEN'];
@@ -48,31 +55,21 @@
48
55
  API_TOPKEN=xxxxxx
49
56
  ```
50
57
 
51
- □config/app.php
58
+ □config/my-app.php
52
59
  ```
53
60
  return [
54
61
 
55
- 'env' => env('APP_ENV', 'production'),
62
+ 'API_KEY' => env('API_KEY', 'production'),
56
63
 
57
- 他、省略....
58
-
59
-
60
-
61
-
62
64
  ]
63
65
  ```
64
66
 
65
67
 
66
68
 
67
- □こちら↓ではconfig('app.env')が正しいと言っておりますが
69
+ □こちら↓ではconfig('app.env')が正しいと言っておりますが
68
70
  [【Laravel】.envファイルの値の正しい取得方法【env関数を使うのは間違い】](https://yaba-blog.com/laravel-env/)
69
- □こっち↓ではおすすめしないと言っています
70
- [【Laravel】.envファイルの値を取得する](https://qiita.com/Akrosg/items/05a7200b8947868f2e45)
71
71
 
72
72
 
73
73
 
74
74
 
75
-
76
-
77
-
78
- 大変初歩的なことで申し訳ありません。普段はサンプルソースを引っ張ってきて実装するくらいのレベルでして、何が悪いのか解らないでいます。どうかご教授お願い致します。
75
+ 大変初歩的なことで申し訳ありません。普段はサンプルソースを引っ張ってきて実装するくらいのレベルです。どうかご教授お願い致します。

2

誤記訂正

2021/07/29 01:59

投稿

t-yknow
t-yknow

スコア4

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- laravelのクラスでenvに登録したを取得したいのですが、config('app.env')と書くとstagingが取得されるだけで目的の値が出てきません。また、色々参考にしましたが正しい取得方法がわからず、envの正しい取得方法について、どうかご教授お願い致します。
1
+ laravelのクラスでenvに登録した環境変数を取得したいのですが、config('app.env')と書くとstagingが取得されるだけで目的の値が出てきません。また、色々参考にしましたが正しい取得方法がわからず、envの正しい取得方法について、どうかご教授お願い致します。
2
2
 
3
3
  ■envの値についてやりたいこと、ソース
4
4
  envに登録してあるAPI_KEYや、API_URLをclassでとってきたいです。

1

誤記訂正

2021/07/29 01:31

投稿

t-yknow
t-yknow

スコア4

title CHANGED
File without changes
body CHANGED
@@ -3,8 +3,9 @@
3
3
  ■envの値についてやりたいこと、ソース
4
4
  envに登録してあるAPI_KEYや、API_URLをclassでとってきたいです。
5
5
  アクセス修飾子privateを$api_keyや$api_tokenに指定し、この変数にAPI_KEYとAPI_TOKENの値を入れて、同じクラス内で使いまわしたいと考えています。
6
- config('app.env')で取得できると思ったのですが、stagingになってしまいます。何が間違っているのでしょうか?
6
+ config('app.env')で取得できると思ったのですが、stagingになってしまいます。config('app.env')は.env内の値を取得するのではないでしょうか?
7
7
  試しに$_SERVERを使ってみると目的の値は取得できましたが、安全な方法でしょうか?
8
+ また、.env内のAPP_ENV=stagingの値を削除してみたところ、productionが取得されました。
8
9
 
9
10
  □TestServiceクラス
10
11
  ```
@@ -51,7 +52,7 @@
51
52
  ```
52
53
  return [
53
54
 
54
- 'name' => env('APP_NAME', 'Laravel'),
55
+ 'env' => env('APP_ENV', 'production'),
55
56
 
56
57
  他、省略....
57
58