StateMachineBundle
StateMachineBundle copied to clipboard
Disabling callbacks based on Expression language
Hello,
Right now we can disable a callback via enabled: false
.
Wouldn't be awesome if we could put Expressions
using the ExpressionEngine instead of a boolean ?
Use case: feature flags This way we could enable/disable callbacks with business logic instead of adding the logic itself inside the callback code wenever possible.
callbacks:
my_callback:
...
enabled: "object.getSettings().hasFeature('email_enabled')"
Hello,
I'm not a big fan of putting too much business logic in config files. But I see an interesting use case for dynamically disable a third-party callback, instead of writing a new callback with a if to call the third-party callback.
You can already use container parameters in the disabled
key, why is that not enough?
Because we have multi-tenant application (for example X shops running on the same database and codebase). So each X stores has different configuration/features that are not dumped into the container
@winzou Would you merge such feature if we open a PR? :)
@pjedrzejewski Definitely, that's a really interesting feature actually. Should not be complicated to implement.