hzanchu/env
Composer 安装命令:
composer require hzanchu/env
包简介
laravel env manager
README 文档
README
Laravel .env manager
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文件中添加如下配置:
# 加密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
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
protected function bootstrappers()
{
$boostrapers = parent::bootstrappers();
return \Anchu\Env\Kernel::bootstrappers($boostrapers);
}
}
1.2 命令行加密命令
要使用此包提供的加密服务,需要将加密命令注册到系统中,如下:
app/Console/Kernel.php:
<?php
namespace App\Console;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Anchu\Env\Commands\EncodeEnv;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
EncodeEnv::class
];
}
2、加密
您可以在.env及/env/.env.*文件以明文的方式添加配置,但是在提交代码到git前,需要运行加密命令对配置文件进行加密:
php artisan env:encode
上述命令会完成如下两个步骤:
- 对
.env文件的PASSWORD相关的配置进行加密; - 对
env/.env.*的所有配置文件都进行加密;
3、解密
在获取到所有.env文件之后,需要对已经loadConfig的配置进行解密,解密操作在如下文件中执行:
app/Providers/AppServiceProvider.php:
<?php
namespace App\Providers;
use Anchu\Env\Env;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
private function recoverConfig()
{
Env::decode();
}
}
hzanchu/env 适用场景与选型建议
hzanchu/env 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 151 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 02 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「array」 「function」 「class」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 hzanchu/env 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hzanchu/env 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 hzanchu/env 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A set of useful PHP classes.
PHPUnit extension to Mock PHP internal functions using Runkit.
A lite function pack for PHP.
MediaWiki extension that allows embedding external content, specified by URL, into your wiki pages
Trait providing methods to set class properties with an array.
PostgreSQL ROUND() function for Doctrine ORM
统计信息
- 总下载量: 151
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2023-02-28