간략한 소개
.env의는 thinkphp, 로컬 프로필 laravel 프레임 워크 프로젝트의 루트 디렉토리에있는 일반적인 위치입니다.
thinkphp 항목 스크립트 분석
index.php를
<?php
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 定义上传目录
define('UPLOAD_PATH', __DIR__ . '/../public');
// 定义应用缓存目录
define('RUNTIME_PATH', __DIR__ . '/../runtime/');
// 开启调试模式
define('APP_DEBUG', true);
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
입구 스크립트는 start.php 파일,하자 다시 입력 파일이 포함되어 있습니다.
start.php
<?php
namespace think;
// ThinkPHP 引导文件
// 加载基础文件
require __DIR__ . '/base.php';
// 执行应用
App::run()->send();
이 문서는 또한 base.php 파일을 포함, 우리는 문서의 내용을 살펴 보겠습니다.
base.php
<?php
// 这里有很多常量的定义,为了观看方便我这里删除那些代码
// 常量定义的代码
// 载入Loader类
require CORE_PATH . 'Loader.php';
// 加载环境变量配置文件
if (is_file(ROOT_PATH . '.env')) {
// 将.env文件解析成二维数组
$env = parse_ini_file(ROOT_PATH . '.env', true);
foreach ($env as $key => $val) {
$name = ENV_PREFIX . strtoupper($key);
if (is_array($val)) {
foreach ($val as $k => $v) {
$item = $name . '_' . strtoupper($k);
// 将这些文件中的参数添加一些前缀转大写之后放入到系统的环境变量中,后台通过Env函数获取的时候就可以直接通过getenv()获取了
putenv("$item=$v");
}
} else {
putenv("$name=$val");
}
}
}
// 注册自动加载
\think\Loader::register();
// 注册错误和异常处理机制
\think\Error::register();
// 加载惯例配置文件
\think\Config::set(include THINK_PATH . 'convention' . EXT);
부하 환경 변수 설정 파일의 상단에 주석이, 우리는 코드의 일부는 코드 .env의 파일을로드, 다음이 주로 간단한 설명을 위해 다음을 수행 코드의 몇 무엇을 줄 일입니다 발견
// 解析一个与php.ini结构类似的文件,返回一个数组
parse_ini_file()
// 设置环境变量,通过这个函数设置了环境变量,我们就可以通过getenv()获取了
putenv()