casperwilkes/laravel-environment_detector2

构建适当的 .env 配置,检测当前 Laravel 环境,使用相应的 .env。需要 Laravel 框架 7 或以上版本。

1.0.0 2020-08-31 16:44 UTC

This package is auto-updated.

Last update: 2024-09-29 05:55:52 UTC


README

这是一个为处理多个环境而设计的简单环境检测器。该软件包在初始设置后可能不需要经常运行。

这对于多个环境设置来说非常棒。

有时你不想将你的 .env 文件保存到你的仓库中,在这种情况下,将 .env* 添加到你的 .gitignore 文件中。

需求

此软件包仅适用于 Laravel 框架 7 及以上版本。如果你在寻找与 5 和 6 版本兼容的软件包,请使用 casperwilkes/environment_detector

安装

要使环境检测器运行,需要几个步骤。

Composer

通过 composer 安装软件包

composer require casperwilkes/laravel-environment_detector2

Laravel 发布

通过 composer 安装后,你将想要发布项目的资源文件

php artisan vendor:publish --tag=env-detector

这将发布必要的引导文件和配置文件。

引导文件位于 ./bootstrap/environment_detector.php

配置文件位于 ./config/environment_detector.php

检查配置

发布配置文件后,你将想要更新它以包含你的环境以及预期的简写名称。

默认情况下,已经设置了一些环境。

'environments' => [
        'local' => 'local',
        'dev' => 'localhost',
        'qa' => '',
        'stage' => '',
        'prod' => '',
    ],

你可以使用任何你想要的简写名称来描述你的环境阶段。这将创建 .env 文件的简写名称。

对于环境名称,你将想要机器的主机名。你可以在命令行中运行 hostname 来获取它。

例如,如果你有两个名为 prod_oneprod_two 的生产环境,你将使用这些作为简写名称,并使用机器的主机名作为环境字段。

'environments' => [
        'local' => 'local',
        'dev' => 'localhost',
        'prod_one' => 'box284.gatorhost.com',
        'prod_two' => 'box246.redhost.com'
    ],

发布软件包

发布供应商资源后,你将想要发布软件包。

要发布软件包,请运行

php artisan envdetector:publish

这将创建必要的环境文件,并更新你的 App.php 以要求 environment_detector。你的上一个版本的 App.php 将在同一目录中进行备份。

这将遍历你的 environment_detector 配置,并为每个找到的环境创建一个 .env 文件。

因此,对于我们的先前示例,我们将得到 4 个不同的 .env 文件。

  • .env.local
  • .env.dev
  • .env.prod_one
  • .env.prod_two

移除软件包

如果你出于任何原因想要移除软件包,你可以取消发布软件包。

运行

php artisan envdetector:unpublish

这将删除引导文件,并从备份过程中恢复你的应用。

注意:如果没有找到备份,它将尝试从 App.php 中删除 require 语句。

使用

envdetector 命令有几种使用选项。

发布

对于发布命令,有三个选项

  • 引导 (-b|--bootstrap)
    • 这将备份 App.php 并在引导中添加 require 语句,以根据配置加载正确的 .env 文件。
  • 配置 (-c|--configs)
    • 这将根据配置文件创建必要的.env.*配置文件。它们将从原始的.env文件中复制。
  • 全部(-a|--all),这将运行所有其他选项

注意

对于引导选项,将在同一目录下创建原始App.php的备份副本。如果您之前对App.php进行了更改,并希望回滚,这将用于这种情况。

对于配置选项,它将检测特定配置是否已存在,以及是否应该被覆盖。在假设之前将出现提示请求权限。如果没有配置已经设置,它将创建它们。您可以选择全部覆盖,或者只覆盖一些。

这在您只添加了1或2个新环境时非常有用。

原始的.env.example.env将始终由该包保持不变。

取消发布

对于取消发布命令,有3个选项

  • 引导 (-b|--bootstrap)
    • 这将将App.php文件恢复到其原始内容。
  • 配置 (-c|--configs)
    • 这将删除配置文件以及所有创建的.env.*文件。
  • 全部(-a|--all),这将运行所有其他选项