davispeixoto / workflow
用于管理状态转换的PHP包
1.0.2
2019-01-24 08:49 UTC
Requires
- php: >=7.1
- myclabs/php-enum: 1.*
Requires (Dev)
- behat/behat: ~3.0
- friendsofphp/php-cs-fixer: ^2.11
- phpmd/phpmd: ^2.6
- phpstan/phpstan: ~0.8
- phpunit/phpunit: ~6.2
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-09-24 22:05:01 UTC
README
用于处理状态转换的PHP包。
状态转换是管理应用程序生命周期和工作流程的好方法,例如
- 电子商务中的订单和支付状态
- 金融系统中的发票状态
- 票务服务台系统中的票务状态
- CRM中的销售状态
安装
可以通过Composer安装工作流程包,在项目的composer.json
中添加davispeixoto/workflow
包,然后从终端运行composer update。
{ "require": { "davispeixoto/workflow": "~1.0" } }
或者
$ php composer.phar require davispeixoto/workflow
在终端运行composer update
php composer.phar update
使用方法
要使用它,首先需要创建用于表示状态的状态。
<?php use MyCLabs\Enum\Enum; class SalesStates extends Enum { public const NEW = 'new'; public const DEALING = 'dealing'; public const WON = 'won'; public const LOST = 'lost'; }
然后可以根据有效的转换创建工作流程
<?php use Davispeixoto\WorkflowInterface\Transition; use Davispeixoto\WorkflowInterface\WorkflowInterface; class SalesWorkflow extends WorkflowInterface { public function __construct(SalesStates $initialStatus) { parent::__construct($initialStatus); // setup the transitions $transitions = []; $transitions[] = new Transition( new SalesStates(SalesStates::NEW), new SalesStates(SalesStates::DEALING) ); $transitions[] = new Transition( new SalesStates(SalesStates::DEALING), new SalesStates(SalesStates::WON) ); $transitions[] = new Transition( new SalesStates(SalesStates::DEALING), new SalesStates(SalesStates::LOST) ); $this->allowedTransitions = $transitions; // setup the finished status, if any/needed $finished = []; $finished[] = new SalesStates(SalesStates::WON); $finished[] = new SalesStates(SalesStates::LOST); $this->finishedStatus = $finished; } }
现在可以使用此工作流程来管理应用程序的状态转换。
许可证
本软件根据MIT许可证授权。
版本控制
本项目遵循语义版本控制。
感谢
所有PHP社区