diff --git a/src/Admin/AbstractAdmin.php b/src/Admin/AbstractAdmin.php index 86800981944..945d87683bf 100644 --- a/src/Admin/AbstractAdmin.php +++ b/src/Admin/AbstractAdmin.php @@ -391,6 +391,8 @@ abstract class AbstractAdmin implements AdminInterface, DomainObjectInterface, A protected $securityHandler; /** + * NEXT_MAJOR: Remove this property. + * * @var ValidatorInterface */ protected $validator; @@ -2848,8 +2850,19 @@ public function id($model) return $this->getNormalizedIdentifier($model); } + /** + * NEXT_MAJOR: Remove this method. + */ public function setValidator($validator) { + + + @trigger_error(sprintf( + 'The %s method is deprecated since version 3.x and will be removed in 4.0.', + __METHOD__ + ), E_USER_DEPRECATED); + + // NEXT_MAJOR: Move ValidatorInterface check to method signature if (!$validator instanceof ValidatorInterface) { throw new \InvalidArgumentException(sprintf( @@ -2861,8 +2874,17 @@ public function setValidator($validator) $this->validator = $validator; } + /** + * NEXT_MAJOR: Remove this method. + */ public function getValidator() { + + @trigger_error(sprintf( + 'The %s method is deprecated since version 3.x and will be removed in 4.0.', + __METHOD__ + ), E_USER_DEPRECATED); + return $this->validator; } diff --git a/src/Admin/AdminInterface.php b/src/Admin/AdminInterface.php index 6555e1398eb..34e6bc68290 100644 --- a/src/Admin/AdminInterface.php +++ b/src/Admin/AdminInterface.php @@ -328,14 +328,22 @@ public function getNormalizedIdentifier($model); public function id($model); /** + * NEXT_MAJOR: remove this method. + * * @param ValidatorInterface $validator * * @return void + * + * @deprecated since sonata-project/admin-bundle 3.x. */ public function setValidator($validator); /** + * NEXT_MAJOR: remove this method. + * * @return ValidatorInterface + * + * @deprecated since sonata-project/admin-bundle 3.x. */ public function getValidator(); diff --git a/src/DependencyInjection/Compiler/AddDependencyCallsCompilerPass.php b/src/DependencyInjection/Compiler/AddDependencyCallsCompilerPass.php index 854767da767..2e29628c63b 100644 --- a/src/DependencyInjection/Compiler/AddDependencyCallsCompilerPass.php +++ b/src/DependencyInjection/Compiler/AddDependencyCallsCompilerPass.php @@ -219,6 +219,8 @@ static function (array $a, array $b): int { /** * NEXT_MAJOR: Change visibility to private. * + * NEXT_MAJOR: Remove validator attribute key. + * * This method read the attribute keys and configure admin class to use the related dependency. */ public function applyConfigurationFromAttribute(Definition $definition, array $attributes) @@ -253,6 +255,8 @@ public function applyConfigurationFromAttribute(Definition $definition, array $a /** * NEXT_MAJOR: Change visibility to private. * + * NEXT_MAJOR: Remove validator from $defaultAddServices. + * * Apply the default values required by the AdminInterface to the Admin service definition. * * @param string $serviceId diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 695fc96dcf5..881e00c642f 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -353,6 +353,7 @@ public function getConfigTreeBuilder() ->scalarNode('translator')->defaultNull()->end() ->scalarNode('configuration_pool')->defaultNull()->end() ->scalarNode('route_generator')->defaultNull()->end() + // NEXT_MAJOR: remove validator option ->scalarNode('validator')->defaultNull()->end() ->scalarNode('security_handler')->defaultNull()->end() ->scalarNode('label')->defaultNull()->end()