在PHP中管理环境变量

Posted 21CTO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在PHP中管理环境变量相关的知识,希望对你有一定的参考价值。

现在我们都能用很多个编程语言开发,当我开始熟悉php时,我会忽略其它语言的特点。我用过其他语言(比如Node.js),但在PHP中没有看到一种轻松控制设置环境变量的方法,特别是在开发中。在Node.js中,dotenv库非常适合这种情况,后来我在PHP中,发现vlucas已经创建了phpdotenv,我准备将这个库应用到PHP项目中。


管理环境变量


在开发环境下,我们的代码应该从本地读取文件而不是实装环境变量中读取变量。这样可以更容易地切换项目,我们可以为每个项目编写一个文件,不必重新导出环境变量(或者在切换项目时没有启动新的shell,某些环境变量是错误的)。另外,可能在为其他人编写代码时,例如示例应用程序或入门工具包,.env文件中提供了设置所需值的清晰列表。


.env配置文件

通常,我用两个文件:


.env是将从中读取实际值的文件。将文件名放入.gitignore,以便在提交时不会将您的实际环境/配置也提交到git中!


.env-example只保存用户设置项目所需的键,而不包括值。这样在后面可以轻松复制此文件并把空白值处填写完整,以使事情顺利进行。


请注意,我们也可能需要一些用于生产环境的开关,比如CI框架中系统设置的环境变量,它不用部署.env。


.env文件内容类似如下所示:


AWESOME_API_KEY=abc123 

AWESOME_API_SECRET=abcdef0123456789


如果值已经存在,我们就可以在PHP应用程序使用它们。


PHPdotenv


首先,我们需要使用Composer将phpdotenv包(https://github.com/vlucas/phpdotenv)添加到你的项目中:


composer require vlucas/phpdotenv


然后,在代码中添加这样的东西到index.php的头部或框架中相关设置的地方(如require “vendor/autoload.php”后可能是一个正确的地方)。代码如下:


$dotenv = new DotenvDotenv(__DIR__);

$dotenv->load();


然后,所有变量都可以在自己期望的地方使用,比如$_ENV['AWESOME_API_KEY']。


这样在开发中使用环境变量就像使用配置文件一样简单,感谢Vance同学创建这个优秀的库~


来源:21CTO 社区


以上是关于在PHP中管理环境变量的主要内容,如果未能解决你的问题,请参考以下文章

PHP中环境变量的操作

PHP中环境变量的操作

php 服务器变量$_SERVER 服务器环境变量 $_ENV

php环境变量

centos 环境变量配置

CentOS添加环境变量