# env
**Repository Path**: lv_anchu/env
## Basic Information
- **Project Name**: env
- **Description**: 对laravel的.env进行分解,形成local/dev/pre/live/all配置文件,并且加密后纳入git代码管理,减少上线部署时的.env操作步骤。
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-02-28
- **Last Updated**: 2024-05-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Laravel .env manager
```shell
composer require hzanchu/env
```
## 概况
此包的主要作用就是合理管理.env文件,将.env文件分解为如下6个文件,并对`env/`目录下的配置文件加密后纳入git管理,减少上线时对`.env`的手动配置:
- `.env`:不纳入git管理,保存少量配置;
- `env/.env.all`:所有环境的公共配置存放在这里;
- `env/.env.local`:本地环境有关的配置存放在这里;
- `env/.env.dev`:开发环境有关的配置存放在这里;
- `env/.env.pre`:测试环境有关的配置存放在这里;
- `env/.env.live`:生产环境有关的配置存放在这里;
`.env`中存储加密时使用的key,要保证在所有环境中,加密key都是一致的,您需要在`.env`文件中添加如下配置:
```shell
# 加密KEy
ENV_KEY=xxxx
```
> 注意:如果相同配置出现在多个env文件中,优先级:.env > .env.* > .env.all
## 版本说明
### tag: 3.*
- 这个版本采用laraval自己的加密算法进行加密解密(crypt);
- 需要在.env中配置APP_KEY:`APP_KEY=Env::generateKey('AES-256-CBC')`
- 生成APP_KEY的$cipher需要在`config/app.php`中配置:`'cipher' => 'AES-256-CBC'`
### tag: 2.*
- 这个版本采用openssl加密算法进行加密;
- 加入了解密命令行,命令为:`php artisan env:decode`;
### tag: 1.*
这个版本采用自定义的加密算法,实现加密;
## 1. 配置系统
### 1.1 获取`env/.env.*`配置
对.env.*的获取,必须在获取.env之后,且在loadConfig文件之前,因此需要调整如下代码:
`app/Http/Kernel.php`、`app/Console/Kernel.php`:
```php