flipjms/laravel-scenarios

轻松将您的应用程序置于不同状态,以便于调试/开发

v0.0.4 2024-09-16 15:18 UTC

This package is auto-updated.

Last update: 2024-09-16 15:18:56 UTC


README

这个小包可以帮助您将Laravel应用程序设置为指定的状态/场景。

假设您想最终修复那个讨厌的边缘情况错误,为此您需要将应用程序置于一个非常具体的状态。例如

  • 您需要有一个具有角色X的用户
  • 您的用户需要购买两个产品
  • 第二个产品的付款状态需要是Y
  • 另一个条件
  • 额外条件
  • 最后一个条件

使用此包,您可以创建一个新的场景,编写将应用程序置于上述状态的代码,然后运行命令以设置场景。

好了!现在您有一个描述性良好的文件,可以将应用程序置于正确的状态,这样您可以轻松地进行开发和每次需要时重置。

不仅如此,它还使其他人能够快速查看可用的场景,并使用它们。

安装

您可以通过composer安装此包

composer require flipjms/laravel-scenarios

转到您的 composer.json 并添加以下内容

"autoload": {
    "psr-4": {
      "Database\\Scenarios\\": "database/scenarios/"
    }
},

使用方法

创建新的场景

php artisan make:scenario NewScenarioName

使用您的名称要具体。不要害怕使用长名称。

文件将创建在 ./database/scenarios/

为它设置一个别名和描述。然后在 execute 方法中添加将应用程序置于所需状态的必要代码。通常您通过运行工厂、种子等来实现。

output 方法允许您在设置场景后将信息输出到控制台。这非常有用,例如显示您可能需要的信息,如用户登录或您可能需要访问的URL。除了进度条之外,所有Laravel 输出IO命令都可用。您还可以使用 Termwind 来获得更漂亮的输出。

设置场景

php artisan scenarios:set

or

php artisan scenarios:set scenario-alias

通常情况下,您想清理数据库。如果是这种情况,您可以使用 --fresh 选项

php artisan scenarios:set --fresh

or

php artisan scenarios:set scenario-alias --fresh

问题

  • 为什么不直接使用种子器?
    • 在我看来,种子器很棒,可以将应用程序置于默认状态而不是特定状态。
  • 为什么不使用命令?
    • 您当然可以使用命令。我确实这样做了。尽管如此,我喜欢将命令视为业务逻辑,而场景是您在开发/调试时需要的东西。这样,我可以保持我的命令文件夹整洁,并将场景整齐地组织在其自己的文件夹中。

致谢

许可

MIT许可证(MIT)。有关更多信息,请参阅许可文件