”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Hours是一个环境变量,我将使用ENV。冷静冷静,我先告诉你一件事

Hours是一个环境变量,我将使用ENV。冷静冷静,我先告诉你一件事

发布于2024-11-08
浏览:947

我们总是很匆忙,想要尽快开发,我们经常会采用旧习惯并构建旧软件,我们可以改进的一个项目是这个叫做环境的小东西,让我们进一步了解一下。


首先,我想在这里展示 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]删除
最新教程 更多>
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本编号的替代方法,它是使用以下语法:获取最新版本:未压缩)While these legacy URLs still remain in use, it is recommended ...
    编程 发布于2025-07-02
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-07-02
  • Java中Lambda表达式为何需要“final”或“有效final”变量?
    Java中Lambda表达式为何需要“final”或“有效final”变量?
    Lambda Expressions Require "Final" or "Effectively Final" VariablesThe error message "Variable used in lambda expression shou...
    编程 发布于2025-07-02
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-07-02
  • 如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求和假用户代理绕过网站块?
    如何使用Python的请求模拟浏览器行为,以及伪造的用户代理提供了一个用户 - 代理标头一个有效方法是提供有效的用户式header,以提供有效的用户 - 设置,该标题可以通过browser和Acterner Systems the equestersystermery和操作系统。通过模仿像Chro...
    编程 发布于2025-07-02
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-07-02
  • 在C#中如何高效重复字符串字符用于缩进?
    在C#中如何高效重复字符串字符用于缩进?
    在基于项目的深度下固定字符串时,重复一个字符串以进行凹痕,很方便有效地有一种有效的方法来返回字符串重复指定的次数的字符串。使用指定的次数。 constructor 这将返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.Wr...
    编程 发布于2025-07-02
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-07-02
  • 如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    编程 发布于2025-07-02
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-07-02
  • 为什么使用Firefox后退按钮时JavaScript执行停止?
    为什么使用Firefox后退按钮时JavaScript执行停止?
    导航历史记录问题:JavaScript使用Firefox Back Back 此行为是由浏览器缓存JavaScript资源引起的。要解决此问题并确保在后续页面访问中执行脚本,Firefox用户应设置一个空功能。 警报'); }; alert('inline Alert')...
    编程 发布于2025-07-02
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-07-02
  • MySQL中如何高效地根据两个条件INSERT或UPDATE行?
    MySQL中如何高效地根据两个条件INSERT或UPDATE行?
    在两个条件下插入或更新或更新 solution:的答案在于mysql的插入中...在重复键更新语法上。如果不存在匹配行或更新现有行,则此功能强大的功能可以通过插入新行来进行有效的数据操作。如果违反了唯一的密钥约束。实现所需的行为,该表必须具有唯一的键定义(在这种情况下为'名称'...
    编程 发布于2025-07-02
  • 如何使用Python理解有效地创建字典?
    如何使用Python理解有效地创建字典?
    在python中,词典综合提供了一种生成新词典的简洁方法。尽管它们与列表综合相似,但存在一些显着差异。与问题所暗示的不同,您无法为钥匙创建字典理解。您必须明确指定键和值。 For example:d = {n: n**2 for n in range(5)}This creates a dicti...
    编程 发布于2025-07-02
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-07-02

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3