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

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

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

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


首先,我想在这里展示 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]删除
最新教程 更多>
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 为什么在grid-template-colms中具有100%的显示器,当位置设置为设置的位置时,grid-template-colly修复了?问题: 考虑以下CSS和html: class =“ snippet-code”> g...
    编程 发布于2025-05-08
  • 如何在Chrome中居中选择框文本?
    如何在Chrome中居中选择框文本?
    选择框的文本对齐:局部chrome-inly-ly-ly-lyly solument 您可能希望将文本中心集中在选择框中,以获取优化的原因或提高可访问性。但是,在CSS中的选择元素中手动添加一个文本 - 对属性可能无法正常工作。初始尝试 state)</option> < op...
    编程 发布于2025-05-08
  • 解决Spring Security 4.1及以上版本CORS问题指南
    解决Spring Security 4.1及以上版本CORS问题指南
    弹簧安全性cors filter:故障排除常见问题 在将Spring Security集成到现有项目中时,您可能会遇到与CORS相关的错误,如果像“访问Control-allo-allow-Origin”之类的标头,则无法设置在响应中。为了解决此问题,您可以实现自定义过滤器,例如代码段中的MyFi...
    编程 发布于2025-05-08
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-05-08
  • Python中何时用"try"而非"if"检测变量值?
    Python中何时用"try"而非"if"检测变量值?
    使用“ try“ vs.” if”来测试python 在python中的变量值,在某些情况下,您可能需要在处理之前检查变量是否具有值。在使用“如果”或“ try”构建体之间决定。“ if” constructs result = function() 如果结果: 对于结果: ...
    编程 发布于2025-05-08
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-05-08
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在Silverlight应用程序中,尝试使用LINQ建立LINQ连接以错误而实现的数据库”,无法找到查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中...
    编程 发布于2025-05-08
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] 剩余_size- = buf_size lines = buffer.split('\ n'....
    编程 发布于2025-05-08
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“检测”中的错误:在功能检测中。”当Face Cascade分类器(即面部检测至关重要的组件)未正确加载时,通常会出现此错误。要解决此问题,必须...
    编程 发布于2025-05-08
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 in position 2-3: truncated \UXXXXXXXX escapeThi...
    编程 发布于2025-05-08
  • 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-05-08
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考虑...
    编程 发布于2025-05-08
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-05-08
  • 您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    在javascript console 中显示颜色是可以使用chrome的控制台显示彩色文本,例如红色的redors,for for for for错误消息?回答是的,可以使用CSS将颜色添加到Chrome和Firefox中的控制台显示的消息(版本31或更高版本)中。要实现这一目标,请使用以下模...
    编程 发布于2025-05-08

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

Copyright© 2022 湘ICP备2022001581号-3