the42coders / workflows
此包允许您通过后端自动化您的Laravel应用程序。
Requires
- php: >7.2
- barryvdh/laravel-dompdf: ^0.9.0|^1.0|^2.0
- doctrine/dbal: ^3.4
- guzzlehttp/guzzle: ^7
- illuminate/support: *
Requires (Dev)
- dev-master
- 0.0.19
- 0.0.18
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7-beta
- 0.0.6-beta
- 0.0.5-beta
- v0.0.4-beta
- v0.0.3-beta
- v0.0.2-beta
- v0.0.1-beta
- dev-analysis-RPwWwK
- dev-delete_triggers_and_tasks_with_workflows
- dev-analysis-0gNjPM
- dev-analysis-PxP69m
- dev-analysis-e7gok9
- dev-feature/newTaskStringInput
- dev-feature/newTaskSlackMessage
- dev-analysis-VrmkbK
- dev-feature/newTaskLoadModel
- dev-analysis-rdo3d1
- dev-feature/buttonTrigger
- dev-analysis-9m6Vrw
- dev-analysis-gOy2w4
- dev-bugfix/fix-migration-down
This package is auto-updated.
Last update: 2024-09-24 08:53:32 UTC
README
工作流包为您的Laravel应用程序添加拖放工作流。工作流由触发器和任务组成。触发器负责启动工作流。任务是单个代码执行节点。该包附带一些实用的任务,但您也可以轻松编写自己的任务。
如果您对新闻和更新感兴趣
安装
您可以通过composer安装此包
composer require the42coders/workflows
您还需要将路由注册到您的web.php路由文件中。由于工作流包非常强大,请确保使用您在应用程序的其他部分使用的任何身份验证来保护这些路由。
Route::group(['middleware' => ['auth']], function () { \the42coders\Workflows\Workflows::routes(); });
您需要发布包的资产
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=assets
其他可发布内容包括
配置
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=config
语言
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=lang
视图
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=views
用法
工作流包在您的Laravel应用程序中开箱即用。只需访问路由/workflows即可开始。
工作流
工作流由触发器启动,然后按照您设置的顺序执行任务。为了在任务之间传递信息,我们使用了DataBus。
触发器
触发器是起点,定义了如何调用工作流。即将推出更多触发器。
ObserverTrigger
Observer触发器可以监听Eloquent模型事件,并将触发事件的模型传递给工作流。
要使其生效,请将WorkflowObservable添加到您的Eloquent模型中。
use WorkflowObservable;
ButtonTrigger
Button触发器可以在您的“前端”中渲染按钮,并根据按钮的点击执行工作流。ButtonTrigger还可以接受一个模型并将其传递给工作流。
您可以通过向每个ButtonTrigger添加自己的类或样式来影响按钮。您还可以发布blade并根据需要更改它。
您有多种方式渲染ButtonTrigger。
按名称
{!! the42coders\Workflows\Triggers\ButtonTrigger::renderButtonByName('name', $model) !!}
按工作流ID
{!! the42coders\Workflows\Triggers\ButtonTrigger::renderButtonByWorkflowId(workflow_id, $model) !!}
按类别
这将返回该类别的所有触发器。
{!! the42coders\Workflows\Triggers\ButtonTrigger::renderButtonsByCategory('categoryName', $model) !!}
任务
任务是在工作流中的单个代码执行节点。
SendSlackMessage
要发送Slack消息,您需要遵循以下3点。
- 您需要安装Slack通知Laravel Slack文档
- 您需要设置一个入站Slack Webhook Slack文档
- 将WebhookUrl设置到您的env文件中,使用WORKFLOW_SLACK_CHANNEL=您的SlackWebhookUrl
DataBus
DataBus是传递单个任务之间信息的一种方式。这使任务相互独立。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG
贡献
请参阅CONTRIBUTING获取详细信息。
安全性
如果您发现任何与安全相关的问题,请发送电子邮件至max@42coders.com,而不是使用问题跟踪器。
致谢
- Max Hutschenreiter
- 所有贡献者
- jerosoler 为 Drawflow 贡献
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。
Laravel包模板
本包是使用Laravel包模板生成的。