質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2716閲覧

laravel envの環境変数の正しい取得方法

t-yknow

総合スコア4

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/07/29 01:20

編集2021/07/29 02:03

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関数を使うのは間違い】

大変初歩的なことで申し訳ありません。普段はサンプルソースを引っ張ってきて実装するくらいのレベルです。どうかご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/07/29 02:31

ドキュメント確認しませんか?
guest

回答1

0

ベストアンサー

$_SERVER を使わずとも config('my-app.API_KEY') で取得できませんか? キーは他に合わせて小文字の方が良さそうですが。

あと、config触ったら、かならずphp artisan config:cacheをする必要がありますので、そちらも忘れずに。

投稿2021/07/29 02:32

編集2021/07/29 02:33
AbeTakashi

総合スコア4594

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t-yknow

2021/07/29 07:37

ありがとうございます! はい、 config('my-app.API_KEY') で取得できています。やはり、config経由ということなのですね。 >$_SERVER を使わずとも そのような程度だということを念頭に置いておきます。 php artisan config:cache を忘れず使うように致します。 大変ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問