优雅 / laravel-workflow
Laravel 工作流
v1.0.6
2024-09-22 12:44 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
README
安装
您可以通过 composer 安装此包
composer require elegantly/laravel-workflow
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="workflow-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="workflow-config"
这是已发布配置文件的内容
return [ 'queue' => env('WORKFLOW_QUEUE'), 'queue_connection' => env('WORKFLOW_QUEUE_CONNECTION'), ];
使用方法
定义您的流程
在类似以下类的文件中定义一个流程
namespace App\Workflows; use Carbon\CarbonInterval; use Elegantly\Workflow\Models\Workflow; use Elegantly\Workflow\WorkflowDefinition; use Elegantly\Workflow\WorkflowStep; use Illuminate\Support\Collection; class WelcomeUserWorkflow extends WorkflowDefinition { public function __construct( public User $user ) { // } public function steps(Workflow $workflow): Collection { return collect() ->put( 'welcome-email', WorkflowStep::make($workflow) ->action(function (): void { // send an email to the user }) ) ->put( 'export-user', WorkflowStep::make($workflow) ->action(new ExportUserToCrmJob($this->user)) ) ->put( 'product-tour-email', WorkflowStep::make($workflow) ->after([ 'welcome-email' => CarbonInterval::days(3) ]) ->action(function (): void { // Send another email to your user }) ) ->put( 'send-promo-code', WorkflowStep::make($workflow) ->after([ 'product-tour-email' => CarbonInterval::days(7), ]) ->when(fn() => $this->user->hasNotPurchased()) ->action(function (): void { // }) ); } }
运行您的流程
use Elegantly\Workflow\Commands\RunWorkflowsCommand; $schedule->command(RunWorkflowsCommand::class)->everyMinutes();
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请查看 我们的安全策略 了解如何报告安全漏洞。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。