From dfc811447009caff0feb689a51315b73d33b6981 Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Sun, 8 Nov 2020 23:57:37 +0000 Subject: [PATCH 1/9] Add support for Laravel 8 --- composer.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index 8b2e0a3..891e470 100644 --- a/composer.json +++ b/composer.json @@ -1,15 +1,15 @@ { "name": "brexis/laravel-workflow", "description": "Integerate Symfony Workflow component into Laravel.", - "keywords": ["workflow", "symfony", "laravel", "laravel5", "laravel6"], + "keywords": ["workflow", "symfony", "laravel", "laravel5", "laravel6", "laravel7", "laravel8"], "license": "MIT", "require": { - "php": ">=5.5.9", + "php": "^7.3|^8.0", "symfony/workflow": "^3.3 || ^4.0", "symfony/process": "^3.3 || ^4.0", "symfony/event-dispatcher": "^3.3 || ^4.0", - "illuminate/console": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.*", - "illuminate/support": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.*" + "illuminate/console": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.* || 7.* || 8.*", + "illuminate/support": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.* || 7.* || 8.*" }, "autoload": { "psr-4": { @@ -36,6 +36,6 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.0 || ~7.0 || ^8.0" + "phpunit/phpunit": "^6.0 || ~7.0 || ^8.0 || ^9.0" } } From 280f5acf0b22eec1943f1703508e1fcb5c1cd0e7 Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Mon, 9 Nov 2020 00:03:47 +0000 Subject: [PATCH 2/9] Update travis ci to test against new php version --- .travis.yml | 2 ++ README.md | 2 +- composer.json | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9dd51e9..b59b84d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,8 @@ language: php php: - 7.1 - 7.2 + - 7.3 + - 8.0 before_install: - sudo apt-get update -q - sudo apt-get autoremove graphviz -y diff --git a/README.md b/README.md index 90314b0..84d12fe 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Laravel workflow [![Build Status](https://travis-ci.org/brexis/laravel-workflow.svg?branch=1.1.2)](https://travis-ci.org/brexis/laravel-workflow) +# Laravel workflow [![Build Status](https://travis-ci.org/brexis/laravel-workflow.svg?branch=1.3.3)](https://travis-ci.org/brexis/laravel-workflow) Use the Symfony Workflow component in Laravel diff --git a/composer.json b/composer.json index 891e470..9f108bf 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "keywords": ["workflow", "symfony", "laravel", "laravel5", "laravel6", "laravel7", "laravel8"], "license": "MIT", "require": { - "php": "^7.3|^8.0", + "php": ">=5.5.9", "symfony/workflow": "^3.3 || ^4.0", "symfony/process": "^3.3 || ^4.0", "symfony/event-dispatcher": "^3.3 || ^4.0", From 1a10a8c9db9c2fe1ebfdb292c6633816b02979bd Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Mon, 9 Nov 2020 00:13:26 +0000 Subject: [PATCH 3/9] Drop php 8 support --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b59b84d..04e93f9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ php: - 7.1 - 7.2 - 7.3 - - 8.0 before_install: - sudo apt-get update -q - sudo apt-get autoremove graphviz -y From 45a4d20be6e5fc0f659520d6e6cc3fdff37b9c1b Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Mon, 9 Nov 2020 03:07:13 +0000 Subject: [PATCH 4/9] Upgrade symfony dependency --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 9f108bf..8ef53f9 100644 --- a/composer.json +++ b/composer.json @@ -5,8 +5,8 @@ "license": "MIT", "require": { "php": ">=5.5.9", - "symfony/workflow": "^3.3 || ^4.0", - "symfony/process": "^3.3 || ^4.0", + "symfony/workflow": "^3.3 || ^4.0 || ^5.0", + "symfony/process": "^3.3 || ^4.0 || ^5.0", "symfony/event-dispatcher": "^3.3 || ^4.0", "illuminate/console": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.* || 7.* || 8.*", "illuminate/support": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.* || 7.* || 8.*" From f1101fb297ea1c9a5f3c78f13025bf2b407a4750 Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Mon, 9 Nov 2020 03:13:31 +0000 Subject: [PATCH 5/9] Upgrade symfony dependency --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 8ef53f9..c77d9af 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,7 @@ "php": ">=5.5.9", "symfony/workflow": "^3.3 || ^4.0 || ^5.0", "symfony/process": "^3.3 || ^4.0 || ^5.0", - "symfony/event-dispatcher": "^3.3 || ^4.0", + "symfony/event-dispatcher": "^3.3 || ^4.0 || ^5.0", "illuminate/console": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.* || 7.* || 8.*", "illuminate/support": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.* || 7.* || 8.*" }, From 88d64d0c6dd327d9f81a91ab06c2e15cb35816f6 Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Sat, 2 Jan 2021 01:41:44 +0000 Subject: [PATCH 6/9] Remove dependency on Single and Multi marking state stores --- src/Traits/WorkflowTrait.php | 5 +++++ src/WorkflowRegistry.php | 7 ++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Traits/WorkflowTrait.php b/src/Traits/WorkflowTrait.php index 8edecc1..0155512 100644 --- a/src/Traits/WorkflowTrait.php +++ b/src/Traits/WorkflowTrait.php @@ -23,4 +23,9 @@ public function workflow_transitions($workflow = null) { return Workflow::get($this, $workflow)->getEnabledTransitions($this); } + + + abstract public function getCurrentPlace(); + + abstract public function setCurrentPlace($currentPlace, $context = []); } diff --git a/src/WorkflowRegistry.php b/src/WorkflowRegistry.php index a1c9d88..c757248 100644 --- a/src/WorkflowRegistry.php +++ b/src/WorkflowRegistry.php @@ -7,8 +7,7 @@ use Symfony\Component\Workflow\Definition; use Symfony\Component\Workflow\DefinitionBuilder; use Symfony\Component\Workflow\MarkingStore\MarkingStoreInterface; -use Symfony\Component\Workflow\MarkingStore\MultipleStateMarkingStore; -use Symfony\Component\Workflow\MarkingStore\SingleStateMarkingStore; +use Symfony\Component\Workflow\MarkingStore\MethodMarkingStore; use Symfony\Component\Workflow\Registry; use Symfony\Component\Workflow\StateMachine; use Symfony\Component\Workflow\SupportStrategy\InstanceOfSupportStrategy; @@ -148,10 +147,8 @@ protected function getMarkingStoreInstance(array $workflowData) if (isset($markingStoreData['class'])) { $className = $markingStoreData['class']; - } elseif (isset($markingStoreData['type']) && $markingStoreData['type'] === 'multiple_state') { - $className = MultipleStateMarkingStore::class; } else { - $className = SingleStateMarkingStore::class; + $className = MethodMarkingStore::class; } $class = new \ReflectionClass($className); From d3a3fcf96b154bdaa32534dc4eb1fd40b53691fe Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Sat, 2 Jan 2021 01:54:00 +0000 Subject: [PATCH 7/9] Remove abstract methods in favour of Eloquent property --- src/Traits/WorkflowTrait.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Traits/WorkflowTrait.php b/src/Traits/WorkflowTrait.php index 0155512..c150ea7 100644 --- a/src/Traits/WorkflowTrait.php +++ b/src/Traits/WorkflowTrait.php @@ -24,8 +24,13 @@ public function workflow_transitions($workflow = null) return Workflow::get($this, $workflow)->getEnabledTransitions($this); } - - abstract public function getCurrentPlace(); + public function getCurrentPlace() + { + return $this->{$markingProperty}; + } - abstract public function setCurrentPlace($currentPlace, $context = []); + public function setCurrentPlace($currentPlace, $context = []) + { + $this->{$markingProperty} = $currentPlace; + } } From b5704de61cbe1c73069b44d65b21da41ce873e69 Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Sat, 2 Jan 2021 02:01:21 +0000 Subject: [PATCH 8/9] Update incorrect methdod names --- src/Traits/WorkflowTrait.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Traits/WorkflowTrait.php b/src/Traits/WorkflowTrait.php index c150ea7..d75c867 100644 --- a/src/Traits/WorkflowTrait.php +++ b/src/Traits/WorkflowTrait.php @@ -24,12 +24,12 @@ public function workflow_transitions($workflow = null) return Workflow::get($this, $workflow)->getEnabledTransitions($this); } - public function getCurrentPlace() + public function getMarking() { return $this->{$markingProperty}; } - public function setCurrentPlace($currentPlace, $context = []) + public function setMarking($currentPlace, $context = []) { $this->{$markingProperty} = $currentPlace; } From 4def76cba35a6764c7dc59a6e43c14f28f93eafc Mon Sep 17 00:00:00 2001 From: Promise Ekoriko Date: Sat, 2 Jan 2021 02:05:35 +0000 Subject: [PATCH 9/9] Fix invalid accessor Add default markingProperty variable --- src/Traits/WorkflowTrait.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Traits/WorkflowTrait.php b/src/Traits/WorkflowTrait.php index d75c867..b2eb60f 100644 --- a/src/Traits/WorkflowTrait.php +++ b/src/Traits/WorkflowTrait.php @@ -9,6 +9,8 @@ */ trait WorkflowTrait { + protected $markingProperty = 'status'; + public function workflow_apply($transition, $workflow = null) { return Workflow::get($this, $workflow)->apply($this, $transition); @@ -24,13 +26,25 @@ public function workflow_transitions($workflow = null) return Workflow::get($this, $workflow)->getEnabledTransitions($this); } + /** + * Get the marking property for class + * + * @return string + */ public function getMarking() { - return $this->{$markingProperty}; + return $this->{$this->markingProperty}; } + /** + * Set the marking property for class + * + * @param [type] $currentPlace + * @param array $context + * @return void + */ public function setMarking($currentPlace, $context = []) { - $this->{$markingProperty} = $currentPlace; + $this->{$this->markingProperty} = $currentPlace; } }