hzanchu/env 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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.phpapp/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 我们能提供哪些服务?
定制开发 / 二次开发

基于 hzanchu/env 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 151
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2023-02-28