mattivdweem / phpdotenv
用于加载dotenv文件的库
Requires
- php: >=5.3.2
Requires (Dev)
- phpunit/phpunit: @stable
This package is not auto-updated.
Last update: 2024-09-14 16:34:39 UTC
README
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 //不建议