在PHP中管理环境变量

  在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同学创建这个优秀的库~

原文地址:https://www.cnblogs.com/yyuyu/p/10009967.html

时间: 2024-11-05 20:49:05

在PHP中管理环境变量的相关文章

Java千百问_02基本使用(014)_mac系统如何管理环境变量

点击进入_更多_Java千百问-基本使用 1.mac系统如何管理环境变量 mac系统中管理环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量.具体配置方法如下: 系统级 通过修改./etc/profile文件来配置,全局(公有)配置,不管是哪个用户,登录时都会读取该文件.不建议修改这个文件. 用户级 ./etc/bashrc,全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件. .b

Java千百问_02基本使用(013)_linux系统如何管理环境变量

点击进入_更多_Java千百问 1.linux系统如何管理环境变量 我们都知道windows的环境变量的配置已经完全被图形化了,我们可以在我的电脑的属性中简单的进行配置,那么对于linux这样没有图形化配置的操作系统应该如何配置呢?我们具体来看: linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量.具体配置方法如下: 系统级 通过修改/etc/profile./etc/environment文件配

Asp.Net Core 如何在 IIS 中设置环境变量

当运行一个 Asp.Net Core 应用的时候, WebHostBuilder 根据环境变量来判断当前运行的是哪个环境,可能是 Development,Staging或者Production.你也可以设置成随便的一个字符串. 这个链接将会告诉你 如何在各种平台各种环境中设置环境变量.但如果你使用 IIS来代理 Asp.Net Core.你需要在 web.config 中设置环境变量 <configuration> <system.webServer> <handlers&g

关于Lumen / Laravel .env 文件中的环境变量是如何生效的

.env 文件包含默认环境变量,我们还可自定义其他任何有效的变量,并可通过  调用 env() 或 $_SERVER 或 $_ENV  来获取该变量.那么env()是如何加载到这些变量的呢?在Lumen的vendor/laravel/lumen-framework/src/helpers.php中,我们可以发现env函数是这样被定义的: if (! function_exists('env')) { /** * Gets the value of an environment variable.

001_java开发中配置环境变量的含义

在学习java的时候需要配置环境变量,但是为什么需要配置path和classpath这2个环境变量呢?    (1) 首先,搞起清楚path这个环境变量的作用.我们cmd到dos命令窗口的时候,输入ipconfig.        其实它调用的是存放在某个目录下面的ipconfig.exe程序,那么操作系统如何知道ipconfig程序存放在哪个目录下的呢?        这时候我们用set path的命令,就能看到很多目录,用;隔开.(如下所示)        #################

Visual Studio中的环境变量(以Visual Studio 2013为例)

前言 本文总结了Visual Studio中常见的环境变量及其在组织解决方案.工程中的作用. 注:本文使用的是Visual Studio 2013,由于作者主要从事C/C++开发,所以是以Visual C++的工作环境配置来描述. 什么是vs的环境变量? 先看图吧,图中以美元符号$开头 + 一对括号,这样进行引用的就是我所谓的环境变量, 图中出现的几个环境变量含义如下: 环境变量名 含义 $(SolutionDir) 解决方案目录:即.sln文件所在路径 $(Configuration) 当前的

python 程序中设置环境变量

python 中调用系统命令有三种方法: 1.os.system('command') ,这个方法是直接调用标准C的system() 函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息. 2.os.popen('command'),该方法不但执行命令还返回执行后的信息对象,是通过一个管道文件将结果返回,例如可以设置一个变量,返回结果. 1 cha = os.popen('ls /').readlines 3.模块subprocess,实际使用过程中发现,假设要在代码当前进程中设置

Linux中的环境变量PATH

首先一点Linux中的每个命令其本质是一个可执行的文件,以ls命令为例.通过命令:$:whereis ls可以查看ls命令的位置在/bin/目录下.当用$:ls -l /bin/ls命令查看文件/bin/ls的属性时,得到如下结果: 其实我们在任意目录下执行的ls命令时,其实执行的是位于/bin目录下的ls文件.那么当在任意目录下执行各种命令时,是怎么找到各自的命令的呢?这就是PATH的作用.查看环境变量PATH的内容如下: PATH的作用就是,当输入命令的时候,Linux会去查找PATH里面记

Xcode 8:在 Active Compilation Conditions 中自定义环境变量

来源:没故事的卓同学 链接:http://www.jianshu.com/p/96b36360bb2d 在Xcode 7我们在 OTHER_SWIFT_FLAGS中配置环境变量.但是有一个不爽的地方就是需要在自定义的变量前增加“-D”后才能使用.比如: 然后才能正常使用: #if MYFLAG // 逻辑判断 #endif 现在在Xcode 8中新增了一个 SWIFT_ACTIVE_COMPILATION_CONDITIONS选项,现在直接在里面添加就可以啦! 在代码中的使用逻辑和之前一样. 相