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

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

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

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


首先,我想在這裡展示 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]刪除
最新教學 更多>
  • 我如何為我的 React Native 專案設定設計系統以加快開發速度
    我如何為我的 React Native 專案設定設計系統以加快開發速度
    曾经构建过您不想自己使用的应用程序吗? 当我还是初级应用程序开发人员时,我曾经构建混乱的用户界面。 有时,当看到这些 UI 时,我曾经想“世界上谁会想使用这个?它看起来很糟糕”。 其他时候,只是有些“不对劲的地方”我无法指出。 虽然我曾经从设计团队那里获得过令人惊叹的精美设计,但我的应用程序看起来连...
    程式設計 發佈於2024-11-08
  • 如何使用 PHP 有效率地檢查檔案中的字串?
    如何使用 PHP 有效率地檢查檔案中的字串?
    如何在PHP 中檢查文件是否包含字串要確定文件中是否存在特定字串,讓我們探索一下解決方案和更有效的替代方案。 原始程式碼:提供的程式碼嘗試檢查檔案中是否存在字串,由變數 $id 表示,透過逐行讀取檔案。但是,while 迴圈中的條件 (strpos($buffer, $id) === false) ...
    程式設計 發佈於2024-11-08
  • 如何在不離開目前頁面的情況下開啟下載視窗?
    如何在不離開目前頁面的情況下開啟下載視窗?
    在不離開當前頁面的情況下打開下載視窗的最簡單方法要在不離開當前頁面或打開彈出視窗的情況下開啟下載對話框,使用以下跨瀏覽器JavaScript:window.location.assign(url);此方法不會開啟新視窗或選項卡,甚至在 Internet Explorer 6 中也能正常運作。 透過將...
    程式設計 發佈於2024-11-08
  • 如何在 C++ 中使用虛擬模板方法實現多態性?
    如何在 C++ 中使用虛擬模板方法實現多態性?
    C 虛擬模板方法在C 中,將靜態時間多態性(模板)與運行時多態性結合起來可能具有挑戰性。這在以下抽象類別中很明顯:class AbstractComputation { public: template <class T> virtual void setData...
    程式設計 發佈於2024-11-08
  • 多執行緒:工程師的關鍵概念 - 第 1 部分
    多執行緒:工程師的關鍵概念 - 第 1 部分
    了解关键的多线程概念对于软件开发人员至关重要,因为它不仅可以增强技能,还可以直接影响应用程序开发、可扩展性和软件解决方案的整体质量。 原子性 在多线程上下文中,原子操作确保一个线程可以执行一系列操作,而不会被其他线程中断。多个线程可能会尝试同时读取或写入共享数据。如果没有原子性,并...
    程式設計 發佈於2024-11-08
  • 後端開發路線圖
    後端開發路線圖
    對於所有有抱負的後端開發人員,我知道導航您的學習道路是多麼令人畏懼。這就是為什麼我很高興能夠提供詳細的路線圖來幫助您掌握用於後端開發的 JavaScript! ? 1️⃣ 從基礎開始:熟悉 JavaScript 基礎知識。理解變數、函數和控制結構至關重要。 2️⃣ 深入了解 Node.js:這個...
    程式設計 發佈於2024-11-08
  • 如何在Go中呼叫Linux共享函式庫函數?
    如何在Go中呼叫Linux共享函式庫函數?
    在Go 中呼叫Linux 共享庫函數在此問題中,開發人員尋求從共享對象(.so) 調用函數的幫助他們的Go 程式碼中的檔案。 Python 中的 ctypes 套件可以存取 C 函數,可以作為所需的功能。 使用 cgo 進行靜態共享庫載入靜態呼叫函數在編譯時已知共享庫,可以使用 cgo 套件。以下是...
    程式設計 發佈於2024-11-08
  • Java 中的字串文字是否會被垃圾收集?
    Java 中的字串文字是否會被垃圾收集?
    字串文字的垃圾收集Q1:如果一個字串在編譯時被定義為文字(例如,String str = "java"),它會被垃圾收集嗎? 通常不會。程式碼物件包含對文字 String 物件的引用,使它們保持可訪問性。垃圾回收僅在程式碼物件變得不可存取時發生。 Q2:如果使用intern 方法...
    程式設計 發佈於2024-11-08
  • 跨平台使用 RSA 加密和解密保護數據
    跨平台使用 RSA 加密和解密保護數據
    RSA加密簡介 在當今的數位環境中,保護敏感資料對於個人和組織都至關重要。 RSA (Rivest-Shamir-Adleman) 加密作為保護資料的強大解決方案脫穎而出。它是一種非對稱加密演算法,這意味著它使用一對金鑰:用於加密的公鑰和用於解密的私鑰。 RSA 加密的主要好處之一...
    程式設計 發佈於2024-11-08
  • 如何利用導師在數位行銷中實現職業發展
    如何利用導師在數位行銷中實現職業發展
    在当今快速发展的数字营销环境中,保持领先趋势并提高您的技能至关重要。加速该领域职业发展的最有效方法之一是利用指导。无论您是刚刚起步还是希望晋升为领导角色,数字营销导师都可以提供宝贵的指导和见解,帮助您实现职业目标。本文探讨了指导如何塑造您的职业轨迹,并提供了充分利用指导经验的策略。 ...
    程式設計 發佈於2024-11-08
  • 將 Cloudinary 整合到 Next.js 應用程式中
    將 Cloudinary 整合到 Next.js 應用程式中
    以了解 Cloudinary 及其定價。 1. 建立一個Cloudinary帳戶 如果您沒有帳戶,請在 Cloudinary 註冊並建立一個新帳戶。 2.安裝Cloudinary SDK 您可以使用npm或yarn安裝Cloudinary SDK: npm ins...
    程式設計 發佈於2024-11-08
  • 我們如何在 CSS 中將後代元素分組?
    我們如何在 CSS 中將後代元素分組?
    用於後代分組的難以捉摸的CSS 選擇器雖然CSS 為樣式元素提供了強大的選項,但一個值得注意的缺失是輕鬆將後代分組的能力。當對 HTML 表格等複雜元素進行樣式設計時,這種限制變得很明顯,其中為列標題和單元格分配相同的樣式需要繁瑣的選擇器。 後代樣式設計的困境考慮下面的表示例:<table i...
    程式設計 發佈於2024-11-08
  • ## 如何在 PHP 中可靠地確定目錄是否為空?
    ## 如何在 PHP 中可靠地確定目錄是否為空?
    在PHP 中驗證目錄是否為空在PHP 中驗證目錄是否為空確定目錄是否為空可能是各種Web 開發場景中的一項重要任務。但是,某些腳本可能會遇到問題,即輸出錯誤地建議空或非空目錄,儘管其中存在或不存在檔案。 原始腳本$q = (count(glob("$dir/*")) === 0)...
    程式設計 發佈於2024-11-08
  • `&deployment` 指標如何實作 Kubernetes 中的 `runtime.Object` 介面?
    `&deployment` 指標如何實作 Kubernetes 中的 `runtime.Object` 介面?
    &deployment指針如何滿足運行時物件介面&deployment指針如何滿足運行時物件介面在Kubernetes程式碼中,kubectl/run.go中的Generate函數傳回包含runtime. Object 和錯誤的結果清單。函數最後一行,return &deployment, nil,...
    程式設計 發佈於2024-11-08
  • 用於帶或不帶協定的 URL 匹配的通用正規表示式
    用於帶或不帶協定的 URL 匹配的通用正規表示式
    匹配帶或不帶協議的URL 的正則表達式對於可能包含或不包含“http://www”前綴的URL ,可以使用正規表示式來執行匹配操作。以下提供了詳細的正規表示式模式:((https?|ftp)://)?([a-z0-9 !*(),;?&amp=$_.-] (:[a-z0-9 !*(),;?&a...
    程式設計 發佈於2024-11-08

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

Copyright© 2022 湘ICP备2022001581号-3