」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Hours是一個環境變量,我將使用ENV。冷靜冷靜,我先告訴你一件事

Hours是一個環境變量,我將使用ENV。冷靜冷靜,我先告訴你一件事

發佈於2024-11-08
瀏覽:646

我們總是很匆忙,想要盡快開發,我們經常會採用舊習慣並構建舊軟體,我們可以改進的一個項目是這個叫做環境的小東西,讓我們進一步了解一下。


首先,我想在這裡展示 Laravel 配置概念的重點,我不會擔心其餘的模式,例如資源或其他類似的模式。

1 - 讓我們尋求知識!

不久前,我聽說我無法在我的瘋狂代碼中完成這個 ENV pass,我當時想;哇
所以目的就是要了解原因,因為這樣我們當工程師才能做出更好的決策。

1.1 - 正確的方式或觀點?

所以來吧,未來的小主人,讓我們在環境變量中放入一個值,這樣我們就可以玩了,所以我們稱它為:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

讓我們轉到第一點,將此配置作為環境變量放置的偉大決定,這樣您就可以更輕鬆地管理不同的環境(生產、審批,如果有的話?)並且更安全,因為這個值它當你在你的儲存庫(git/bitbucket)中進行頑皮的git推送時,它不會被暴露,你能想像你的水秘密被洩露到互聯網上嗎?

要在Laravel 檢索這個值,我們可以使用env() 方法,也可以使用另一個包,例如Illuminate 的Support(這讓我想起了minions,我不知道為什麼?)

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

env:Laravel Helper(使用 Env::get
Env::get:Support Illuminate 套件中的 Env 類別

哇,已經準備好了,那為什麼還要繼續發明時尚呢?事實是,這不是一個好主意,我很快就會解釋原因,請留下來。
對於不同的解決方案,我們可以提及將檢索創建的環境的值的配置文件,因此配置文件是集中的,來吧,說真的!更適合閱讀程式碼。

在這種特定情況下,您已經可以使用名為 services.php 的現有設定文件,但沒有什麼可以阻止您為特定上下文建立文件。

路徑中config/services.php

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

所以我們將在程式碼中呼叫它,如下所示:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes


2 - 很酷,但是為什麼我應該使用配置來檢索變數而不是直接獲取它們?

我會試著說明一些原因:

2.1 - 提高性能並更好地利用 IO

考慮以下情況,您在生產中是否有文件會一直被訪問,進行大量的 IO,這會增加機器資源,並且根據情況,系統會變慢? (相信我,在您真正找到問題之前,您將經歷一些會質疑您所有知識的事情)

當我們談論生產環境時,建議你緩存你漂亮的配置文件,用Laravel你可以使用artisan

php artisan config:cache

這個漂亮的命令獲取所有配置文件及其各自的值,並將它們編譯成單個 php 文件,從而提高性能。這是因為IO數量減少到1

好奇心:當您使用此命令時,env()開始返回NULL,因為它禁用了此功能。因此,如果來自 "Neida"env() 你的停止工作,就是這樣。

Env() 執行 IO 操作,它們既昂貴又緩慢。

最好在應用程式開始時執行一次此操作,而不是每次需要環境時執行此操作。

2.2 - 以最佳方式組織和標準化

您可以輕鬆保留您想要的所有設定。你可以輸入你想要的狗的名字,創建一個資料夾並按照你想要的方式構造所有數組,這將使結構更清晰(請適度使用)
例如:

看這個鍵:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

現在看看這個鍵:

Horas é uma variável de ambiente, vou usar o ENV. Calma, calma, deixa eu te falar uma coisa antes

以我的拙見,第一個要好得多。

此外,您可以將類似的配置放在正確且集中的位置,而不必將它們“隨機”放置在代碼中,我真的很喜歡這種構建數組的想法,這對應用程序來說完全有意義。

對於新開發人員的指導要簡單得多,因為您可以告訴他們在哪裡以及如何進行新配置。

保持簡單,與眾不同!

感謝您迄今為止所做的一切。

來源:

Laravel 11 文件配置

版本聲明 本文轉載於:https://dev.to/paulocavalcante/horas-e-uma-variavel-de-ambiente-vou-usar-o-env-calma-calma-deixa-eu-te-falar-uma-coisa- antes-3hk?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 表單刷新後如何防止重複提交?
    表單刷新後如何防止重複提交?
    在Web開發中預防重複提交 在表格提交後刷新頁面時,遇到重複提交的問題是常見的。要解決這個問題,請考慮以下方法: 想像一下具有這樣的代碼段,看起來像這樣的代碼段:)){ //數據庫操作... 迴聲“操作完成”; 死(); } ? > ...
    程式設計 發佈於2025-04-29
  • 解決MySQL錯誤1153:數據包超出'max_allowed_packet'限制
    解決MySQL錯誤1153:數據包超出'max_allowed_packet'限制
    mysql錯誤1153:故障排除比“ max_allowed_pa​​cket” bytes 更大的數據包,用於面對陰謀mysql錯誤1153,同時導入數據capase doft a Database dust?讓我們深入研究罪魁禍首並探索解決方案以糾正此問題。 理解錯誤此錯誤表明在導入過程中...
    程式設計 發佈於2025-04-29
  • 如何實時捕獲和流媒體以進行聊天機器人命令執行?
    如何實時捕獲和流媒體以進行聊天機器人命令執行?
    在開發能夠執行命令的chatbots的領域中,實時從命令執行實時捕獲Stdout,一個常見的需求是能夠檢索和顯示標準輸出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    程式設計 發佈於2025-04-29
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call fil...
    程式設計 發佈於2025-04-29
  • 如何從PHP中的數組中提取隨機元素?
    如何從PHP中的數組中提取隨機元素?
    從陣列中的隨機選擇,可以輕鬆從數組中獲取隨機項目。考慮以下數組:; 從此數組中檢索一個隨機項目,利用array_rand( array_rand()函數從數組返回一個隨機鍵。通過將$項目數組索引使用此鍵,我們可以從數組中訪問一個隨機元素。這種方法為選擇隨機項目提供了一種直接且可靠的方法。
    程式設計 發佈於2025-04-29
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-04-29
  • 編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    錯誤:“ usr/bin/ld:找不到-l “ 此錯誤表明鏈接器在鏈接您的可執行文件時無法找到指定的庫。為了解決此問題,我們將深入研究如何指定庫路徑並將鏈接引導到正確位置的詳細信息。 添加庫搜索路徑的一個可能的原因是,此錯誤是您的makefile中缺少庫搜索路徑。要解決它,您可以在鏈接器命令中添...
    程式設計 發佈於2025-04-29
  • Python不會對超範圍子串切片報錯的原因
    Python不會對超範圍子串切片報錯的原因
    在python中用索引切片範圍:二重性和空序列索引單個元素不同,該元素會引起錯誤,切片在序列的邊界之外沒有。 這種行為源於索引和切片之間的基本差異。索引一個序列,例如“示例” [3],返回一個項目。但是,切片序列(例如“示例” [3:4])返回項目的子序列。 索引不存在的元素時,例如“示例” [9...
    程式設計 發佈於2025-04-29
  • Python高效去除文本中HTML標籤方法
    Python高效去除文本中HTML標籤方法
    在Python中剝離HTML標籤,以獲取原始的文本表示 僅通過Python的MlStripper 來簡化剝離過程,Python Standard庫提供了一個專門的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    程式設計 發佈於2025-04-29
  • 找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    如何在mySQL中使用mySql 檢索最大計數,您可能會遇到一個問題,您可能會在嘗試使用以下命令:理解錯誤正確找到由名稱列分組的值的最大計數,請使用以下修改後的查詢: 計數(*)為c 來自EMP1 按名稱組 c desc訂購 限制1 查詢說明 select語句提取名稱列和每個名稱...
    程式設計 發佈於2025-04-29
  • JavaScript計算兩個日期之間天數的方法
    JavaScript計算兩個日期之間天數的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    程式設計 發佈於2025-04-29
  • 如何在鼠標單擊時編程選擇DIV中的所有文本?
    如何在鼠標單擊時編程選擇DIV中的所有文本?
    在鼠標上選擇div文本單擊帶有文本內容,用戶如何使用單個鼠標單擊單擊div中的整個文本?這允許用戶輕鬆拖放所選的文本或直接複製它。 在單個鼠標上單擊的div元素中選擇文本,您可以使用以下Javascript函數: function selecttext(canduterid){ if(d...
    程式設計 發佈於2025-04-29
  • 我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    將我的加密庫從mcrypt升級到openssl 問題:是否可以將我的加密庫從McRypt升級到OpenSSL?如果是這樣,如何? 答案:是的,可以將您的Encryption庫從McRypt升級到OpenSSL。 可以使用openssl。 附加說明: [openssl_decrypt()函數要求...
    程式設計 發佈於2025-04-29
  • 如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    在Visual Studio 2012 儘管已安裝了MySQL Connector v.6.5.4,但無法將MySQL數據庫添加到實體框架的“ DataSource對話框”中。為了解決這一問題,至關重要的是要了解MySQL連接器v.6.5.5及以後的6.6.x版本將提供MySQL的官方Visual...
    程式設計 發佈於2025-04-29
  • 如何在GO編譯器中自定義編譯優化?
    如何在GO編譯器中自定義編譯優化?
    在GO編譯器中自定義編譯優化 GO中的默認編譯過程遵循特定的優化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    程式設計 發佈於2025-04-29

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3