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

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

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

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


首先,我想在这里展示 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]删除
最新教程 更多>
  • 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 instal...
    编程 发布于2024-11-08
  • 我们如何在 CSS 中对后代元素进行分组?
    我们如何在 CSS 中对后代元素进行分组?
    用于后代分组的难以捉摸的 CSS 选择器虽然 CSS 为样式元素提供了强大的选项,但一个值得注意的缺失是轻松对后代进行分组的能力。当对 HTML 表格等复杂元素进行样式设计时,这种限制变得很明显,其中为列标题和单元格分配相同的样式需要繁琐的选择器。后代样式设计的困境考虑下面的表示例:<tabl...
    编程 发布于2024-11-08
  • ## 如何在 PHP 中可靠地确定目录是否为空?
    ## 如何在 PHP 中可靠地确定目录是否为空?
    在 PHP 中验证目录是否为空确定目录是否为空可能是各种 Web 开发场景中的一项重要任务。但是,某些脚本可能会遇到问题,即输出错误地建议空或非空目录,尽管其中存在或不存在文件。原始脚本提供的脚本尝试使用以下代码检查目录是否为空:$q = (count(glob("$dir/*"...
    编程 发布于2024-11-08
  • `&deployment` 指针如何实现 Kubernetes 中的 `runtime.Object` 接口?
    `&deployment` 指针如何实现 Kubernetes 中的 `runtime.Object` 接口?
    &deployment指针如何满足运行时对象接口在Kubernetes代码中,kubectl/run.go中的Generate函数返回包含runtime.Object 和错误的结果列表。函数最后一行,return &deployment, nil,将局部变量deployment的地址赋值给r...
    编程 发布于2024-11-08
  • 用于带或不带协议的 URL 匹配的通用正则表达式
    用于带或不带协议的 URL 匹配的通用正则表达式
    匹配带或不带协议的 URL 的正则表达式对于可能包含或不包含“http://www”前缀的 URL ,可以使用正则表达式来执行匹配操作。下面提供了详细的正则表达式模式:((https?|ftp)://)?([a-z0-9 !*(),;?&amp=$_.-] (:[a-z0-9 !*(),;?...
    编程 发布于2024-11-08
  • 如何防止 Foreach 循环输出中出现尾随逗号?
    如何防止 Foreach 循环输出中出现尾随逗号?
    消除 Foreach 循环中的尾随逗号在编程中,通常需要迭代项目列表并单独输出每个项目通过分隔符,例如逗号。但是,当使用 foreach 循环执行此任务时,您可能会遇到最后一项后面出现尾随逗号的问题。考虑以下 PHP 代码:foreach ($this->sinonimo as $s){ ...
    编程 发布于2024-11-08
  • LZ C++ React Native 绑定,实现极快的压缩算法
    LZ C++ React Native 绑定,实现极快的压缩算法
    我最近开始涉足 JSI 和 C,因此,我必须构建一个名为react-native-lz4 的小包。它是一个在 React Native 中使用 C 编写的 LZ4 算法进行快速文件压缩的​​库。 它仍处于实验阶段,因为我仍在完善错误处理并扩展其 API,但它已经可以使用(谨慎!) 包:https:/...
    编程 发布于2024-11-08
  • JVM GC 能像 Go 一样实现 1ms 以下的暂停吗?
    JVM GC 能像 Go 一样实现 1ms 以下的暂停吗?
    JVM 能否像 Go 一样将 GC 暂停时间减少到 1 毫秒以下?Go 编程语言拥有较低的 GC 暂停时间,通常低于 100 微秒。然而,Java 虚拟机 (JVM) 在实现类似性能方面面临着挑战。架构限制历史上,Go 和 Java 之间的架构差异影响了 GC 暂停时间.Go 的非压缩收集器: Go...
    编程 发布于2024-11-08
  • 如何在 PHP 中根据特定键对多维数组进行自定义排序?
    如何在 PHP 中根据特定键对多维数组进行自定义排序?
    多维数组的自定义排序对多维数组进行排序是编程中的常见任务。本文演示如何使用 PHP usort() 函数根据特定键对此类数组进行排序。理解任务考虑以下多维数组,其中每个元素代表一条记录:Array ( [0] => Array ( [iid] =...
    编程 发布于2024-11-08
  • 如何在 Laravel 5 中使用数字规则验证数字输入的长度?
    如何在 Laravel 5 中使用数字规则验证数字输入的长度?
    Laravel 5 中数字输入的长度验证在 Laravel 5 中验证数字输入的长度时,可能会遇到大小规则问题。它不检查输入的长度,而是检查输入是否完全等于指定的大小。要解决此问题,应使用数字规则。根据 Laravel 文档:$rules = [ 'national-id' => 'r...
    编程 发布于2024-11-08
  • 如何从 jQuery 下拉列表中检索选项的文本?
    如何从 jQuery 下拉列表中检索选项的文本?
    从 jQuery 下拉列表中检索选项文本获取与 jQuery 下拉列表中的特定选项标记关联的文本,使用以下技术:Option Based on Value获取文本具有特定值的选项,即使未选择,也使用选择器:$("#list option[value='2']").text();此...
    编程 发布于2024-11-08

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

Copyright© 2022 湘ICP备2022001581号-3