考虑将设置信息存储在文档根文件夹之外的 .env 文件中,正如最佳实践所建议的那样......使用 .env 文件与 .php 文件相比有什么优势?
.env 文件将由库解析并存储在 ENV 变量中。.php 文件不需要解析,将存储关于 ENV 变量的信息。
谢谢!
开发时,您将拥有一组在本地环境或正在开发的其他环境中配置的密钥。您不希望与与您一起工作的其他开发人员共享这些密钥(数据库、电子邮件服务等的密码)。如果您与世界共享代码,也不会。
.env创建文件是为了让您拥有一个工作环境,而不必与世界或团队的其他成员共享这些密钥。它们应该是项目解决环境的单一对象。
当您创建将在整个项目中使用的密钥时,除了将它们添加到您的.env文件之外,您还应该将它们添加到.env.example推送到存储库的文件中。将密钥留在那里,同时将值保留为空,.env.example以便其他开发人员了解项目工作所需的密钥以及他们应该在其中添加的内容,同时不提示您的本地密码是什么。
此外,当您在本地环境中工作时,您通常使用本地密码。当您部署到包含敏感信息的真实密码将存在的生产服务器时,就会出现问题。因此,您不希望这些存在于您的存储库中,并且绝对不希望将它们永久存储在您的存储库中(这伴随着职业责任,特别是当您被标记为开发人员而不是系统管理员时,在这种情况下一旦项目部署到生产环境中,系统管理员将在其中添加密钥)。
这是绕过上面这些问题的优雅方式
在评论中回答您的第二个问题
老实说,如果您最终遵循我上面解释的内容,那么您可以两种方式都这样做。主要目标是保护您的变量。但是您可以拒绝将 php 文件推送到 repo。
我认为为什么你应该使用.env而不是.php如下:
1..env你立即知道它是一个环境变量持有者。.php无论你如何命名它都没有那么直接的理解;
2..env列出目录时会是一个神秘文件;
3. 与同一个 repo 中的其他开发人员一起工作时,更容易快速识别和理解不应在该提交上推送的内容(即使考虑在挂钩上添加额外的安全层以确保.env不被推送的情况)在提交上。这更难,你必须为.php文件硬编码);
我猜在您的论证级别中,在决定文件之间时,这些将是一些 Go Tos。我会让.php文件准确地说,php programming files instead of configs;
现在,如果你问我之间.env或.yml等等,我会说和你熟悉/感觉舒服的人一起去。最后你避免.php了同样的:)
PS:此外,如果您考虑在需要时如何在代码中引用它们,environment variables当您看到以下内容时,它会更快地跳到眼睛:
getenv('YOUR_VARIABLE_HERE');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |