iT邦幫忙

0

laravel 運行 php artisan config:cache 的 (env('APP_name') 失效問題

  • 分享至 

  • xImage

請教大大!無限感激!
如題:我想請教
1、如果我的 Laravel 項目運行 php artisan config:cache,意義是否為了增加效能,有運行跟沒有運行之間差別有多大。
2、運行 php artisan config:cache,在blade模板中 env('APP_name') 無效我已經明瞭,但是如果在 controller 中使用 env('APP_name') 是否會有效?
還勞請大神門指教。

chan15 iT邦新手 2 級 ‧ 2021-12-16 09:34:23 檢舉
env 是有載入順序的,他會先去找環境變數再回頭找 .env,因此會有多重變動的風險,php artisan config:cache 是把 env cache 住可以用 config('NAME') 取得,以效能跟安全性來講該用 config 去取資料,所以你多半是在 config 下看到 env 載入
我採用了您提共的建議,使用config('NAME') 方式,已經解決我的問題。深深地謝謝您的指教
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2021-12-16 07:32:08
最佳解答

1、如果我的 Laravel 項目運行 php artisan config:cache,意義是否為了增加效能,有運行跟沒有運行之間差別有多大。

並不是完全為了效能。因為設定資料是緩存記錄住的。

2、運行 php artisan config:cache,在blade模板中 env('APP_name') 無效我已經明瞭,但是如果在 controller 中使用 env('APP_name') 是否會有效?

其實這個問題跟1有點同道理。
首先,你誤會了env檔的用意。你可能將其視為設定檔之類的東西。在名義上來說並不能說不對。
只是在用法上來說,它並非是設定檔。而是「設定載入檔」
畢竟ENV並沒相關與PHP能運行的寫法存在。

再來,env()。就如上面說的,它算是載入檔的一種應用。
Laravel真正要跑的是設定檔(config)。第1個指令,其實跑的也是設定檔。
env()的使用是要在設定檔中使用的。不是在程式上使用。無論你說的VIEW還是MVC。

程式內要使用的則是config()才對。

非常感謝細細地分析,受教了!

我要發表回答

立即登入回答