8000 [Workflow] deprecate `GuardEvent::getContext` method by hhamon · Pull Request #51484 · symfony/symfony · GitHub
[go: up one dir, main page]

Skip to content

[Workflow] deprecate GuardEvent::getContext method #51484

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

Merged
merged 1 commit into from
Aug 30, 2023

Conversation

hhamon
Copy link
Contributor
@hhamon hhamon commented Aug 25, 2023
Q A
Branch? 6.4
Bug fix? no
New feature? no
Deprecations? yes
Tickets ~
License MIT
Doc PR ~

As discussed with @lyrixx, this method is confusing as the context given as the 3rd argument to the WorflowInterface::appy() method is never passed along to the guard events. According to @lyrixx, the guard listeners must take any decisions based on the subject itself and not on the given contextual data (which are supposed to remain metadata). As a consequence, calling the getContext method on a GuardEvent object always returns an empty context.

To prevent confusion and lower the BC breakage in 7.x, we advocate for deprecating this method in 6.4 and make it throw an exception in 7.0. Application codes should not call this method anyway as it always returns an empty array.

EDIT: a second approach in Symfony 7.x is to remove the getContext method from the base abstract class and reimplement it as a dedicated trait that is used by all the other event classes except GuardEvent. This approach is probably a bit cleaner as the method will completly be dropped from the GuardEvent class scope.

Any thoughts?

@hhamon hhamon requested a review from lyrixx as a code owner August 25, 2023 12:43
@carsonbot carsonbot added this to the 6.4 milestone Aug 25, 2023
@carsonbot carsonbot changed the title WIP: [Workflow] deprecate GuardEvent::getContext method [Workflow] WIP: deprecate GuardEvent::getContext method Aug 25, 2023
@hhamon hhamon force-pushed the deprecate-guard-event-get-context branch from 6019e12 to 89e5c00 Compare August 25, 2023 12:45
@hhamon hhamon force-pushed the deprecate-guard-event-get-context branch from 89e5c00 to c31d044 Compare August 26, 2023 10:41
@hhamon hhamon changed the title [Workflow] WIP: deprecate GuardEvent::getContext method [Workflow] deprecate GuardEvent::getContext method Aug 26, 2023
@hhamon hhamon force-pushed the deprecate-guard-event-get-context branch from c31d044 to d47b6be Compare August 26, 2023 10:43
Copy link
Member
@lyrixx lyrixx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@fabpot
Copy link
Member
fabpot commented Aug 30, 2023

Thank you @hhamon.

@fabpot fabpot merged commit edd1cb4 into symfony:6.4 Aug 30, 2023
fabpot added a commit that referenced this pull request Aug 30, 2023
…ontextTrait` trait (hhamon)

This PR was merged into the 7.0 branch.

Discussion
----------

Remove `GuardEvent::getContext()` method and add `HasContextTrait` trait

| Q             | A
| ------------- | ---
| Branch?       | 7.0
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Related to #51484
| License       | MIT
| Doc PR        | ~

As discussed with `@lyrixx`, the `GuardEvent::getContext` method was confusing as the context given as the 3rd argument to the WorflowInterface::appy() method is never passed along to the guard events. According to `@lyrixx`, the guard listeners must take any decisions based on the subject itself and not on the given contextual data (which are supposed to remain metadata). As a consequence, calling the `GuardEvent::getContext()` method always returned an empty context array so far.

To prevent this confusion any longer, the method has been deprecated in Symfony 6.4 (see #51484) and removed in this PR. The `GuardEvent` class hierarchy no longer has the `getContext` method while other event classes keep having it.

Commits
-------

2aee3ae Remove `GuardEvent::getContext()` method and add `HasContextTrait` trait
fabpot added a commit that referenced this pull request Sep 5, 2023
…thout replacement (alexandre-daubois)

This PR was merged into the 7.0 branch.

Discussion
----------

[Workflow] Remove `GuardEvent::getContext()` method without replacement

| Q             | A
| ------------- | ---
| Branch?       | 7.0
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Follow-up of #51484

Commits
-------

8271c56 [Workflow] Remove `GuardEvent::getContext()` method without replacement
@fabpot fabpot mentioned this pull request Oct 21, 2023
@fabpot fabpot mentioned this pull request Oct 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
0