mattivdweem/phpdotenv

用于加载dotenv文件的库

1.0.0-stable 2015-02-20 11:56 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:34:39 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License SensioLabsInsight

PHP dot env

PHP库,用于读取环境变量。

.env?

.env文件是环境文件,通常不希望与整个世界共享的文件和数据。通过使用.env文件,您可以轻松设置这些文件的权限并将它们添加到git忽略列表中。

有很多库和内置函数可以做到这一点吗?

嗯,是的,这是真的,但这个版本的工作方式略有不同;我们使用一个环境文件夹,这使得切换环境变得容易,但也会帮助保持您的代码整洁。

如何使用它?

首选方法:Composer

require: "mattivdweem/phpdotenv": "1.1.3*@dev"

可选方法:克隆或下载src文件夹并包含它

require_once('src/Dotenv.php');
$Dotenv = new Dotenv;

函数

除了它非常容易扩展,并且读取文件夹而不是文件的部分。

以下是从我的测试文件中的一个示例

$Dotenv
	->setScope(0)
	->setOverwrite(false)
	->useComponents()
	->addRequired(array('CFOO'))
	->load('.env/dev')
	->load('.env/mysql.env')
	->load('.env/github.json');

这基本上是它所做的一切的简短总结。您可以读取文件夹、.env文件和json文件要添加更多扩展,请转到'extending phpdotenvi'

您可以更改作用域,并使原始环境文件可覆盖。有一个选项可以使用从组件文件夹中定义的组件(如果没有使用,则使用默认值)。

您可以添加必需项。(这些将在类的__destruction上运行)

您还可以加载文件。

####按函数功能

setScope(int)

设置要扫描文件所在的文件夹深度。

0表示无限

setOverwrite(bool)

当您有其他脚本正在运行$_ENV变量时,您可能希望保留这些变量,通过将覆盖设置为false,变量将不会被覆盖。

addComponents(string/array)

文件与扩展规则匹配,确保您的首选扩展有一个组件将其转换为数组。

useComponents()

开发者是懒惰的家伙,所以如果您想偷懒并且在开发阶段不使用组件,您可以替换系统的扩展到组件文件夹中找到的所有扩展。

addRequired(string/array)

您可以匹配您给出的所有输入与所需变量,如果所需变量不存在,则会抛出错误。

load(string)

它做了它所说的。加载指定的文件。

添加组件

文件会与组件匹配并通过组件运行,匹配是通过扩展完成的。但是,由于每个文件都不同,将文件转换为可用的PHP数组要复杂一些。

我喜欢处理json,所以我添加了一个json组件(这并不是魔法或什么的,只是将json_decode包装在一个类中)。由于它是一个dotenv库,所以还有一个用于读取.env文件的小类。

创建一个新组件很容易,首先简单复制json示例。或者按照以下步骤操作

  • 在src/components文件夹中创建一个新的PHP文件,命名为您的扩展(例如,json.php)
  • 在此PHP文件中创建一个名为您的扩展的类(例如,json)
  • 在您的文件中创建一个public function toArray($contents){},该函数将被调用并用于从您的扩展中获取PHP数组
  • 在类内部,您可以随心所欲,只要toArray函数返回一个数组并且接收一个字符串即可。
示例
<?php
/*
 * Custom component for custom extension
 * @param extension = '.custom'
 */
class custom{

	/*
	 * Default function to boot, this function should return an array of data
	 * @param string
	 * @return array
	 */
	public function toArray($contents){
		return array();
	}

}

我做了这个,现在我该怎么办?您可以通过不同的方式注册您的组件

  • 在启动时设置useComponents()
  • 使用addComponents('your comps')
  • 编辑Dotenv.php //不建议