flipjms / laravel-scenarios
轻松将您的应用程序置于不同状态,以便于调试/开发
v0.0.4
2024-09-16 15:18 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0|^10.0|^11.0
- nunomaduro/termwind: ^2.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
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)。有关更多信息,请参阅许可文件。