grosv/shiftable-configs

在不修改配置文件本身的情况下修改核心 Laravel 配置

0.1.4 2020-09-07 13:44 UTC

This package is auto-updated.

Last update: 2024-09-07 22:26:37 UTC


README

这个包仍在开发中,直到今年秋天我用它帮助将许多站点升级到 Laravel 8,才会被认为是生产就绪。

正如 JMacBase Laravel 中指出,Laravel 的新主要版本通常会在默认配置文件中带来新的值。如果在升级后缺少这些值,可能会导致错误,有时这些错误很难追踪。

避免这种情况的最佳方法是保留 Laravel 的核心配置在默认状态,并仅使用环境变量。这样,在升级时,无论是使用 Laravel Shift 还是手动操作,您都可以自信地拉取新的配置文件,而不必担心丢失任何自己的设置。

这基本上是可行的,但确实有其局限性。在以下情况下,我们必须偏离这种做法

  • 我们需要添加数据库连接,这需要编辑 config/databases.php

  • 我们需要手动注册别名或提供者,这需要编辑 config/app.php

  • 我们希望使用 app/services.php 文件来执行其预期用途,并向其中添加非默认服务(我通常只为每个服务创建一个单独的配置文件)

我的个人方法是尽可能在核心配置文件之外完成所有工作,给自己留下一个极小的清单,这些时候我必须打破规则。然后,我使用这个包来确保我的自定义设置在升级中得以保留。

安装

composer require grosv/shiftable-configs

Shiftable Configs 如何帮助

Shiftable Configs 是一个包,它提供了一个命令 php artisan make:shiftable-configs,该命令将您的配置与您的 Laravel 版本的默认配置进行比较(由 composer.json 中的要求确定),并将两者之间的差异保存到新的配置文件中。不会对您的原始配置文件进行任何更改。

然后,Shiftable Configs 服务提供者在启动方法中将此默认配置文件中的值合并到您站点的配置中。这意味着,如果您将站点的所有核心配置文件重置为其默认状态,所有设置都会得到保留。

因此,使用 Laravel shift 进行升级的过程可能如下所示

  1. 运行 php artisan make:shiftable-configs

  2. 进行迁移

  3. 再次运行 php artisan make:shiftable-configs

  4. 测试和部署您的网站。

代码风格检查和测试

composer test:unit # Runs PHPUnit
composer lint # Runs php-cs-fixer to fix your coding style
composer test # Runs lint and then test:unit