From 674bf614dd250a0da187ab6bc1dba717d6a43215 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 18 Nov 2021 14:15:51 +0100 Subject: [PATCH] fix: Add a deprecation and the new service that goes with it as replacement. --- .../Resolver/CenterResolverDispatcher.php | 29 ++++++++++++----- .../Resolver/CenterResolverManager.php | 31 +++++++++++++++++++ .../CenterResolverManagerInterface.php | 15 +++++++++ 3 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php create mode 100644 src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManagerInterface.php diff --git a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverDispatcher.php b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverDispatcher.php index 1e2f9c02b..1042f3931 100644 --- a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverDispatcher.php +++ b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverDispatcher.php @@ -1,27 +1,42 @@ resolvers = $resolvers; } /** - * @param mixed $entity - * @param array|null $options * @return null|Center|Center[] */ public function resolveCenter($entity, ?array $options = []) { - foreach($this->resolvers as $priority => $resolver) { + trigger_deprecation( + 'ChillMainBundle', + 'dev-master', + ' + Use the service CenterResolverManager through the interface CenterResolverManagerInterface. + The new method "CenterResolverManagerInterface::resolveCenters(): array" is available and the typing + has been improved in order to avoid mixing types. + ' + ); + + foreach($this->resolvers as $resolver) { if ($resolver->supports($entity, $options)) { return $resolver->resolveCenter($entity, $options); } diff --git a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php new file mode 100644 index 000000000..9f09398a5 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php @@ -0,0 +1,31 @@ +resolvers = $resolvers; + } + + public function resolveCenters($entity, ?array $options = []): array + { + foreach($this->resolvers as $resolver) { + if ($resolver->supports($entity, $options)) { + return (array) $resolver->resolveCenter($entity, $options); + } + } + + return []; + } +} diff --git a/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManagerInterface.php b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManagerInterface.php new file mode 100644 index 000000000..deaaff182 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManagerInterface.php @@ -0,0 +1,15 @@ +