Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional data can be used when getting the state for a transition #7

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

robinvdvleuten
Copy link

Hi there,

First of all props for the amazing library! It works perfectly with states as string. But in my use case, I would like to store some additional data alongside the state of the object like the datetime of when the object has transitioned to state.
To store such information, I made the state an entity instead of a string. And by overriding the new getStateForTransition method in my own StateMachine class, I can return an object instead of a string. To add data to the state object, you can pass an additional array.

Hopefully you'll like the idea :-) otherwise you have some thoughts how I can resolve this with your library.

@winzou
Copy link
Owner

winzou commented Dec 5, 2014

Hi,

Sorry for not having reviewedd this earlier, I totally missed it.

Unfortunately this is quite a big BC break so I can't merge it like this.
If you're using Symfony you can call services as callbacks, in which you can access any additional data, could it be a solution for you?

Thanks

@blazarecki
Copy link
Contributor

I think adding this feature (with more test and a documentation) will make this lib way better than yohang/Finite.

winzou/state-machine can handle multiple graph with multiple state in a single object, yohang/Finite can't.
But yohang/Finite can have context with state and transition with is very useful. see http://finite.readthedocs.org/en/master/examples/transition-properties.html

If you want I am available to help you to achieve this.

What do you think @winzou @robinvdvleuten ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants