PHP DotEnv for CodeIgniter 使用教程
1. 项目的目录结构及介绍
phpdotenv-for-codeigniter/
├── application/
│ ├── config/
│ │ ├── config.php
│ │ ├── hooks.php
│ │ └── ...
│ ├── hooks/
│ │ └── Dotenv.php
│ └── ...
├── env.example
├── LICENSE
└── README.md
- application/: 包含CodeIgniter应用程序的主要文件。
- config/: 包含应用程序的配置文件,如
config.php
和hooks.php
。 - hooks/: 包含自定义钩子文件,如
Dotenv.php
。
- config/: 包含应用程序的配置文件,如
- env.example: 环境变量的示例文件。
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件主要是application/hooks/Dotenv.php
,这个文件负责加载环境变量。
// application/hooks/Dotenv.php
defined('BASEPATH') OR exit('No direct script access allowed');
use Dotenv\Dotenv;
class DotenvHook {
public function load() {
$dotenv = Dotenv::createImmutable(FCPATH);
$dotenv->load();
}
}
这个文件定义了一个钩子类DotenvHook
,其中的load
方法使用Dotenv
库加载环境变量。
3. 项目的配置文件介绍
3.1 application/config/config.php
在这个文件中,需要启用Composer自动加载和钩子:
$config['composer_autoload'] = TRUE;
$config['enable_hooks'] = TRUE;
3.2 application/config/hooks.php
在这个文件中,定义一个钩子来加载环境变量:
$hook['pre_system'][] = array(
'class' => 'DotenvHook',
'function' => 'load',
'filename' => 'Dotenv.php',
'filepath' => 'hooks'
);
这个钩子在系统启动前加载环境变量。
通过以上配置,项目可以自动检测环境类型并从.env
文件中加载变量到getenv()
、$_ENV
和$_SERVER
中。